Skip to content

Commit

Permalink
KVM: s390: Improve pgste accesses
Browse files Browse the repository at this point in the history
There is no need to use interlocked updates when the rcp
lock is held. Therefore the simple bitops variants can be
used. This should improve performance.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
  • Loading branch information
Heiko Carstens authored and Avi Kivity committed Apr 27, 2008
1 parent f603f07 commit c71799c
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions include/asm-s390/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -553,12 +553,12 @@ static inline void ptep_rcp_copy(pte_t *ptep)

skey = page_get_storage_key(page_to_phys(page));
if (skey & _PAGE_CHANGED)
set_bit(RCP_GC_BIT, pgste);
set_bit_simple(RCP_GC_BIT, pgste);
if (skey & _PAGE_REFERENCED)
set_bit(RCP_GR_BIT, pgste);
if (test_and_clear_bit(RCP_HC_BIT, pgste))
set_bit_simple(RCP_GR_BIT, pgste);
if (test_and_clear_bit_simple(RCP_HC_BIT, pgste))
SetPageDirty(page);
if (test_and_clear_bit(RCP_HR_BIT, pgste))
if (test_and_clear_bit_simple(RCP_HR_BIT, pgste))
SetPageReferenced(page);
#endif
}
Expand Down Expand Up @@ -732,8 +732,8 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma,
young = ((page_get_storage_key(physpage) & _PAGE_REFERENCED) != 0);
rcp_lock(ptep);
if (young)
set_bit(RCP_GR_BIT, pgste);
young |= test_and_clear_bit(RCP_HR_BIT, pgste);
set_bit_simple(RCP_GR_BIT, pgste);
young |= test_and_clear_bit_simple(RCP_HR_BIT, pgste);
rcp_unlock(ptep);
return young;
#endif
Expand Down

0 comments on commit c71799c

Please sign in to comment.