mbox

Pull request: scottwood/linux.git next

Message ID 20161212081731.GA31497@home.buserror.net (mailing list archive)
State Accepted
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git next

Message

Crystal Wood Dec. 12, 2016, 8:17 a.m. UTC
Highlights include 8xx hugepage support, qbman fixes/cleanup, device
tree updates, and some misc cleanup.

The following changes since commit 555c16328ae6d75a90e234eac9b51998d68f185b:

  powerpc/mm: Correct process and partition table max size (2016-11-17 17:11:53 +1100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git next

for you to fetch changes up to baae856ebdeeaefbadd4a02cdb54b7c2277ff4dd:

  powerpc/fsl/dts: add FMan node for t1042d4rdb (2016-12-09 23:11:17 -0600)

----------------------------------------------------------------
Andy Fleming (1):
      powerpc/85xx: Enable gpio power/reset driver

Christophe Leroy (3):
      powerpc: port 64 bits pgtable_cache to 32 bits
      powerpc: get hugetlbpage handling more generic
      powerpc/8xx: Implement support of hugepages

Claudiu Manoil (15):
      soc/qman: Fix h/w resource cleanup error path handling
      soc/qbman: Fix resource leak on portal probing error path
      soc/qman: Fix struct qm_fqd set accessor for context_a
      soc/qman: Fix direct access to fd's addr_lo, use proper accesor
      soc/qman: test: Fix implementation of fd_cmp()
      soc/qman: Don't add a new platform device for dma mapping
      soc/qman: test: Don't use dummy platform device for dma mapping
      soc/qman: Remove redundant checks from qman_create_cgr()
      soc/qman: Remove unused struct qm_mcc* layouts
      soc/qman: Fix accesses to fqid, cleanup
      soc/qman: Drop unused field from eqcr/dqrr descriptors
      soc/qbman: Handle endianness of qm/bm_in/out()
      soc/qman: Change remaining contextB into context_b
      soc/qman: Clean up CGR CSCN target update operations
      soc/qman: Handle endianness of h/w descriptors

Colin Ian King (1):
      soc/fsl: fix spelling mistakes in critical error messages

David Engraf (1):
      powerpc/85xx/qemu: Enable CONFIG_E500 and CONFIG_PPC_E500MC

Fabian Frederick (2):
      powerpc/fsl-lbc: use DEFINE_SPINLOCK()
      soc/fsl/qman: test: use DEFINE_SPINLOCK()

Florian Larysch (2):
      DT: i2c: W83793 is a trivial device
      powerpc/dts: add device tree entry for W83793 on T4240RDB

Geliang Tang (3):
      powerpc/83xx/suspend: use builtin_platform_driver
      powerpc/fsl_pmc: use builtin_platform_driver
      soc/fsl/qe: use builtin_platform_driver

Heiner Kallweit (3):
      powerpc/fsl_soc: improve and simplify fsl_get_sys_freq
      powerpc/fsl_soc: improve and simplify get_brgfreq
      powerpc/fsl_soc: improve and simplify get_baudrate

Madalin Bucur (6):
      soc/qman: Check ioremap return value
      soc/qman: Replace of_get_property() with portable equivalent
      powerpc/fsl/dts: add QMan and BMan nodes on t1023
      powerpc/fsl/dts: add QMan and BMan nodes on t1024
      powerpc/fsl/dts: add sg_2500_aqr105_phy4 alias on t1024rdb
      powerpc/fsl/dts: add FMan node for t1042d4rdb

Wei Yongjun (1):
      soc/fsl/bman: Use resource_size instead of computation

 .../devicetree/bindings/i2c/trivial-devices.txt    |   1 +
 arch/powerpc/boot/dts/fsl/t1023rdb.dts             |  29 +++
 arch/powerpc/boot/dts/fsl/t1023si-post.dtsi        | 103 +++++++++
 arch/powerpc/boot/dts/fsl/t1024qds.dts             |  29 +++
 arch/powerpc/boot/dts/fsl/t1024rdb.dts             |  33 +++
 arch/powerpc/boot/dts/fsl/t1042d4rdb.dts           |  52 +++++
 arch/powerpc/boot/dts/fsl/t4240rdb.dts             |   4 +
 arch/powerpc/configs/fsl-emb-nonhw.config          |   6 +
 arch/powerpc/include/asm/book3s/32/pgalloc.h       |  44 +++-
 arch/powerpc/include/asm/book3s/32/pgtable.h       |  40 ++--
 arch/powerpc/include/asm/book3s/64/pgtable.h       |   3 -
 arch/powerpc/include/asm/hugetlb.h                 |  19 +-
 arch/powerpc/include/asm/mmu-8xx.h                 |  35 ++++
 arch/powerpc/include/asm/mmu.h                     |  23 +-
 arch/powerpc/include/asm/nohash/32/pgalloc.h       |  44 +++-
 arch/powerpc/include/asm/nohash/32/pgtable.h       |  42 ++--
 arch/powerpc/include/asm/nohash/32/pte-8xx.h       |   1 +
 arch/powerpc/include/asm/nohash/64/pgtable.h       |   2 -
 arch/powerpc/include/asm/nohash/pgtable.h          |   4 +
 arch/powerpc/include/asm/pgtable.h                 |   2 +
 arch/powerpc/include/asm/reg_8xx.h                 |   2 +-
 arch/powerpc/kernel/head_8xx.S                     | 119 ++++++++++-
 arch/powerpc/mm/Makefile                           |   3 +-
 arch/powerpc/mm/hugetlbpage.c                      | 216 +++++++++----------
 arch/powerpc/mm/init-common.c                      | 107 ++++++++++
 arch/powerpc/mm/init_64.c                          |  77 -------
 arch/powerpc/mm/pgtable_32.c                       |  37 ----
 arch/powerpc/mm/tlb_nohash.c                       |  21 +-
 arch/powerpc/platforms/83xx/suspend.c              |   6 +-
 arch/powerpc/platforms/85xx/Kconfig                |   2 +
 arch/powerpc/platforms/8xx/Kconfig                 |   1 +
 arch/powerpc/platforms/Kconfig.cputype             |   1 +
 arch/powerpc/sysdev/fsl_lbc.c                      |   2 +-
 arch/powerpc/sysdev/fsl_pmc.c                      |   6 +-
 arch/powerpc/sysdev/fsl_soc.c                      |  48 ++---
 drivers/soc/fsl/qbman/bman.c                       |   8 +-
 drivers/soc/fsl/qbman/bman_ccsr.c                  |   3 +-
 drivers/soc/fsl/qbman/bman_portal.c                |  17 +-
 drivers/soc/fsl/qbman/dpaa_sys.h                   |   1 +
 drivers/soc/fsl/qbman/qman.c                       | 233 ++++++++++-----------
 drivers/soc/fsl/qbman/qman_ccsr.c                  |   3 +
 drivers/soc/fsl/qbman/qman_portal.c                |  41 +++-
 drivers/soc/fsl/qbman/qman_priv.h                  |  17 +-
 drivers/soc/fsl/qbman/qman_test_api.c              |  27 +--
 drivers/soc/fsl/qbman/qman_test_stash.c            |  38 ++--
 drivers/soc/fsl/qe/qe.c                            |   6 +-
 include/soc/fsl/qman.h                             |  62 +++---
 47 files changed, 1040 insertions(+), 580 deletions(-)
 create mode 100644 arch/powerpc/mm/init-common.c

Comments

Aneesh Kumar K.V Dec. 13, 2016, 3:49 p.m. UTC | #1
Scott Wood <oss@buserror.net> writes:

> Highlights include 8xx hugepage support, qbman fixes/cleanup, device
> tree updates, and some misc cleanup.
>
> The following changes since commit 555c16328ae6d75a90e234eac9b51998d68f185b:
>
>   powerpc/mm: Correct process and partition table max size (2016-11-17 17:11:53 +1100)
>
> are available in the git repository at:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git next
>
> for you to fetch changes up to baae856ebdeeaefbadd4a02cdb54b7c2277ff4dd:
>
>   powerpc/fsl/dts: add FMan node for t1042d4rdb (2016-12-09 23:11:17 -0600)
>
> ----------------------------------------------------------------
> Andy Fleming (1):
>       powerpc/85xx: Enable gpio power/reset driver
>
> Christophe Leroy (3):
>       powerpc: port 64 bits pgtable_cache to 32 bits
>       powerpc: get hugetlbpage handling more generic
>       powerpc/8xx: Implement support of hugepages


So i guess it got pulled into linux-next and 4k page size boot on ppc64.
That is easy to fix such as doing something below.
 
-       if (PMD_INDEX_SIZE && !PGT_CACHE(PMD_INDEX_SIZE))
+       if (PMD_CACHE_INDEX && !PGT_CACHE(PMD_CACHE_INDEX)) {
                pgtable_cache_add(PMD_CACHE_INDEX, pmd_ctor);
+       }

But then we also have crashes when using hugetlb 

[   59.089441] Unable to handle kernel paging request for data at address 0xe8dc493a00000000
[   59.089591] Faulting instruction address: 0xc000000000054da0
[   59.089685] Oops: Kernel access of bad area, sig: 11 [#2]
[   59.089753] SMP NR_CPUS=2048 
[   59.089797] NUMA 
[   59.089817] pSeries
[   59.089840] Modules linked in:
[   59.089904] CPU: 1 PID: 3689 Comm: hugepage-mmap Tainted: G      D         4.9.0-next-20161213-11823-gff9fa2f-dirty #6
[   59.090058] task: c00000003efbc900 task.stack: c000000038d5c000
[   59.090145] NIP: c000000000054da0 LR: c000000000262e38 CTR: 0000000000000000
NIP: c000000000054da0 LR: c000000000262e38 CTR: 0000000000000000
REGS: c000000038d5f3b0 TRAP: 0380   Tainted: G      D          (4.9.0-next-20161213-11823-gff9fa2f-dirty)
MSR: 8000000000001033 <SF,ME,IR,DR,RI,LE>  CR: 28002422  XER: 20000000
CFAR: c000000000054ebc SOFTE: 0 
GPR00: 0000000000000007 c000000038d5f630 c000000000de2600 c000000000000000 
GPR04: 00003efff0000000 0000000000000000 0000000000000000 0000000000000015 
GPR08: 000000000000007f 0000000000000000 e8dc493a00000000 0000000000000000 
GPR12: 0000000000000009 c00000000fe00400 00003efff0000000 0000000000000001 
GPR16: 00003efff0000000 0000000000001000 c00000003ee70eb8 0000000000000000 
GPR20: 0000000000000000 c00000003e956508 0000000000000000 c000000000ea7478 
GPR24: c000000038d5f7d0 c1fffffffffff7ff 0000000000000000 00003f0000000000 
GPR28: 0000000001000000 c00000003ee70a00 0000000000000009 0000000000000010 
NIP [c000000000054da0] __find_linux_pte_or_hugepte+0x1c0/0x380
LR [c000000000262e38] __unmap_hugepage_range+0x198/0x6d0
Call Trace:
[c000000038d5f630] [c000000000262d80] __unmap_hugepage_range+0xe0/0x6d0 (unreliable)
[c000000038d5f6f0] [c000000000263390] __unmap_hugepage_range_final+0x20/0x50
[c000000038d5f720] [c0000000002344fc] unmap_single_vma+0xcc/0x120
[c000000038d5f760] [c000000000234954] unmap_vmas+0x84/0x120
[c000000038d5f7b0] [c000000000241438] exit_mmap+0xd8/0x190
[c000000038d5f870] [c0000000000acf3c] mmput+0x6c/0x1d0
[c000000038d5f8a0] [c0000000000b6b64] do_exit+0x324/0xcd0
[c000000038d5f960] [c000000000023900] oops_end+0x150/0x1f0
[c000000038d5f9e0] [c000000000047118] bad_page_fault+0xd8/0x150
[c000000038d5fa50] [c000000000025330] slb_miss_bad_addr+0x30/0x70
[c000000038d5fa70] [c000000000008c38] bad_addr_slb+0x158/0x160

I will see if this is easy to fix. But just want to update the list.

-aneesh
Aneesh Kumar K.V Dec. 13, 2016, 6:34 p.m. UTC | #2
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> writes:

> Scott Wood <oss@buserror.net> writes:
>
>> Highlights include 8xx hugepage support, qbman fixes/cleanup, device
>> tree updates, and some misc cleanup.
>>
>> The following changes since commit 555c16328ae6d75a90e234eac9b51998d68f185b:
>>
>>   powerpc/mm: Correct process and partition table max size (2016-11-17 17:11:53 +1100)
>>
>> are available in the git repository at:
>>
>>   git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux.git next
>>
>> for you to fetch changes up to baae856ebdeeaefbadd4a02cdb54b7c2277ff4dd:
>>
>>   powerpc/fsl/dts: add FMan node for t1042d4rdb (2016-12-09 23:11:17 -0600)
>>
>> ----------------------------------------------------------------
>> Andy Fleming (1):
>>       powerpc/85xx: Enable gpio power/reset driver
>>
>> Christophe Leroy (3):
>>       powerpc: port 64 bits pgtable_cache to 32 bits
>>       powerpc: get hugetlbpage handling more generic
>>       powerpc/8xx: Implement support of hugepages
>
>
> So i guess it got pulled into linux-next and 4k page size boot on ppc64.
> That is easy to fix such as doing something below.
>  
> -       if (PMD_INDEX_SIZE && !PGT_CACHE(PMD_INDEX_SIZE))
> +       if (PMD_CACHE_INDEX && !PGT_CACHE(PMD_CACHE_INDEX)) {
>                 pgtable_cache_add(PMD_CACHE_INDEX, pmd_ctor);
> +       }
>
> But then we also have crashes when using hugetlb 
>
> [   59.089441] Unable to handle kernel paging request for data at address 0xe8dc493a00000000
> [   59.089591] Faulting instruction address: 0xc000000000054da0
> [   59.089685] Oops: Kernel access of bad area, sig: 11 [#2]
> [   59.089753] SMP NR_CPUS=2048 
> [   59.089797] NUMA 
> [   59.089817] pSeries
> [   59.089840] Modules linked in:
> [   59.089904] CPU: 1 PID: 3689 Comm: hugepage-mmap Tainted: G      D         4.9.0-next-20161213-11823-gff9fa2f-dirty #6
> [   59.090058] task: c00000003efbc900 task.stack: c000000038d5c000
> [   59.090145] NIP: c000000000054da0 LR: c000000000262e38 CTR: 0000000000000000
> NIP: c000000000054da0 LR: c000000000262e38 CTR: 0000000000000000
> REGS: c000000038d5f3b0 TRAP: 0380   Tainted: G      D          (4.9.0-next-20161213-11823-gff9fa2f-dirty)
> MSR: 8000000000001033 <SF,ME,IR,DR,RI,LE>  CR: 28002422  XER: 20000000
> CFAR: c000000000054ebc SOFTE: 0 
> GPR00: 0000000000000007 c000000038d5f630 c000000000de2600 c000000000000000 
> GPR04: 00003efff0000000 0000000000000000 0000000000000000 0000000000000015 
> GPR08: 000000000000007f 0000000000000000 e8dc493a00000000 0000000000000000 
> GPR12: 0000000000000009 c00000000fe00400 00003efff0000000 0000000000000001 
> GPR16: 00003efff0000000 0000000000001000 c00000003ee70eb8 0000000000000000 
> GPR20: 0000000000000000 c00000003e956508 0000000000000000 c000000000ea7478 
> GPR24: c000000038d5f7d0 c1fffffffffff7ff 0000000000000000 00003f0000000000 
> GPR28: 0000000001000000 c00000003ee70a00 0000000000000009 0000000000000010 
> NIP [c000000000054da0] __find_linux_pte_or_hugepte+0x1c0/0x380
> LR [c000000000262e38] __unmap_hugepage_range+0x198/0x6d0
> Call Trace:
> [c000000038d5f630] [c000000000262d80] __unmap_hugepage_range+0xe0/0x6d0 (unreliable)
> [c000000038d5f6f0] [c000000000263390] __unmap_hugepage_range_final+0x20/0x50
> [c000000038d5f720] [c0000000002344fc] unmap_single_vma+0xcc/0x120
> [c000000038d5f760] [c000000000234954] unmap_vmas+0x84/0x120
> [c000000038d5f7b0] [c000000000241438] exit_mmap+0xd8/0x190
> [c000000038d5f870] [c0000000000acf3c] mmput+0x6c/0x1d0
> [c000000038d5f8a0] [c0000000000b6b64] do_exit+0x324/0xcd0
> [c000000038d5f960] [c000000000023900] oops_end+0x150/0x1f0
> [c000000038d5f9e0] [c000000000047118] bad_page_fault+0xd8/0x150
> [c000000038d5fa50] [c000000000025330] slb_miss_bad_addr+0x30/0x70
> [c000000038d5fa70] [c000000000008c38] bad_addr_slb+0x158/0x160
>
> I will see if this is easy to fix. But just want to update the list.

Ok this turned out to be not related to this series. Our 4k page size
little endian config had broken hugetlb for a long time. But we still
need the PMD_CACHE_INDEX changes around code.

I will send the patches after more testing/cross build

-aneesh