1. 17 7月, 2016 1 次提交
    • A
      powerpc/mm: use _raw variant of page table accessors · 66c570f5
      Aneesh Kumar K.V 提交于
      This switch few of the page table accessor to use the __raw variant
      and does the cpu to big endian conversion of constants. This helps in
      generating better code.
      
      For ex: a pgd_none(pgd) check with and without fix is listed below
      
      Without fix:
      ------------
         2240:	20 00 61 eb 	ld      r27,32(r1)
      /* PGD level */
      typedef struct { __be64 pgd; } pgd_t;
      static inline unsigned long pgd_val(pgd_t x)
      {
      	return be64_to_cpu(x.pgd);
      
          2244:	22 00 66 78 	rldicl  r6,r3,32,32
          2248:	3e 40 7d 54 	rotlwi  r29,r3,8
          224c:	0e c0 7d 50 	rlwimi  r29,r3,24,0,7
          2250:	3e 40 c5 54 	rotlwi  r5,r6,8
          2254:	2e c4 7d 50 	rlwimi  r29,r3,24,16,23
          2258:	0e c0 c5 50 	rlwimi  r5,r6,24,0,7
          225c:	2e c4 c5 50 	rlwimi  r5,r6,24,16,23
          2260:	c6 07 bd 7b 	rldicr  r29,r29,32,31
          2264:	78 2b bd 7f 	or      r29,r29,r5
      		if (pgd_none(pgd))
          2268:	00 00 bd 2f 	cmpdi   cr7,r29,0
          226c:	54 03 9e 41 	beq     cr7,25c0 <__get_user_pages_fast+0x500>
      
      With fix:
      ---------
          2370:	20 00 61 eb 	ld      r27,32(r1)
      		if (pgd_none(pgd))
          2374:	00 00 bd 2f 	cmpdi   cr7,r29,0
          2378:	a8 03 9e 41 	beq     cr7,2720 <__get_user_pages_fast+0x530>
      			break;
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Acked-by: NBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      66c570f5
  2. 11 5月, 2016 1 次提交
  3. 01 5月, 2016 1 次提交