mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 17:41:50 +00:00
[S390] split page_test_and_clear_dirty.
The page_test_and_clear_dirty primitive really consists of two operations, page_test_dirty and the page_clear_dirty. The combination of the two is not an atomic operation, so it makes more sense to have two separate operations instead of one. In addition to the improved readability of the s390 version of SetPageUptodate, it now avoids the page_test_dirty operation which is an insert-storage-key-extended (iske) instruction which is an expensive operation. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
2fc2d1e9ff
commit
6c210482ae
4 changed files with 24 additions and 12 deletions
|
@ -133,7 +133,7 @@
|
|||
static inline void SetPageUptodate(struct page *page)
|
||||
{
|
||||
if (!test_and_set_bit(PG_uptodate, &page->flags))
|
||||
page_test_and_clear_dirty(page);
|
||||
page_clear_dirty(page);
|
||||
}
|
||||
#else
|
||||
#define SetPageUptodate(page) set_bit(PG_uptodate, &(page)->flags)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue