cleanup swiotlb initialization

Boris Ostrovsky boris.ostrovsky at oracle.com
Wed Feb 23 16:57:49 PST 2022


On 2/22/22 10:35 AM, Christoph Hellwig wrote:
> Hi all,
>
> this series tries to clean up the swiotlb initialization, including
> that of swiotlb-xen.  To get there is also removes the x86 iommu table
> infrastructure that massively obsfucates the initialization path.
>
> Git tree:
>
>      git://git.infradead.org/users/hch/misc.git swiotlb-init-cleanup


I haven't had a chance to look at this yet but this crashes as dom0:


[   37.377313] BUG: unable to handle page fault for address: ffffc90042880018
[   37.378219] #PF: supervisor read access in kernel mode
[   37.378219] #PF: error_code(0x0000) - not-present page
[   37.378219] PGD 7c2f2ee067 P4D 7c2f2ee067 PUD 7bf019b067 PMD 105a30067 PTE 0
[   37.378219] Oops: 0000 [#1] PREEMPT SMP NOPTI
[   37.378219] CPU: 14 PID: 1 Comm: swapper/0 Not tainted 5.17.0-rc5swiotlb #9
[   37.378219] Hardware name: Oracle Corporation ORACLE SERVER E1-2c/ASY,Generic,SM,E1-2c, BIOS 49004900 12/23/2020
[   37.378219] RIP: e030:init_iommu_one+0x248/0x2f0
[   37.378219] Code: 48 89 43 68 48 85 c0 74 c4 be 00 20 00 00 48 89 df e8 ea ee ff ff 48 89 43 78 48 85 c0 74 ae c6 83 98 00 00 00 00 48 8b 43 38 <48> 8b 40 18 a8 01 74 07 83 8b a8 04 00 00 01 f6 83 a8 04 00 00 01
[   37.378219] RSP: e02b:ffffc9004044bd18 EFLAGS: 00010286
[   37.378219] RAX: ffffc90042880000 RBX: ffff888107260800 RCX: 0000000000000000
[   37.378219] RDX: 0000000080000000 RSI: ffffea00041cab80 RDI: 00000000ffffffff
[   37.378219] RBP: ffffc9004044bd38 R08: 0000000000000901 R09: ffffea00041cab00
[   37.378219] R10: 0000000000000002 R11: 0000000000000000 R12: ffffc90040435008
[   37.378219] R13: 0000000000080000 R14: 00000000efa00000 R15: 0000000000000000
[   37.378219] FS:  0000000000000000(0000) GS:ffff88fef4180000(0000) knlGS:0000000000000000
[   37.378219] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[   37.378219] CR2: ffffc90042880018 CR3: 000000000260a000 CR4: 0000000000050660
[   37.378219] Call Trace:
[   37.378219]  <TASK>
[   37.378219]  early_amd_iommu_init+0x3c5/0x72d
[   37.378219]  ? iommu_setup+0x284/0x284
[   37.378219]  state_next+0x158/0x68f
[   37.378219]  ? iommu_setup+0x284/0x284
[   37.378219]  iommu_go_to_state+0x28/0x2d
[   37.378219]  amd_iommu_init+0x15/0x4b
[   37.378219]  ? iommu_setup+0x284/0x284
[   37.378219]  pci_iommu_init+0x12/0x37
[   37.378219]  do_one_initcall+0x48/0x210
[   37.378219]  kernel_init_freeable+0x229/0x28c
[   37.378219]  ? rest_init+0xe0/0xe0
[   37.963966]  kernel_init+0x1a/0x130
[   37.979415]  ret_from_fork+0x22/0x30
[   37.991436]  </TASK>
[   37.999465] Modules linked in:
[   38.007413] CR2: ffffc90042880018
[   38.019416] ---[ end trace 0000000000000000 ]---
[   38.023418] RIP: e030:init_iommu_one+0x248/0x2f0
[   38.023418] Code: 48 89 43 68 48 85 c0 74 c4 be 00 20 00 00 48 89 df e8 ea ee ff ff 48 89 43 78 48 85 c0 74 ae c6 83 98 00 00 00 00 48 8b 43 38 <48> 8b 40 18 a8 01 74 07 83 8b a8 04 00 00 01 f6 83 a8 04 00 00 01
[   38.023418] RSP: e02b:ffffc9004044bd18 EFLAGS: 00010286
[   38.023418] RAX: ffffc90042880000 RBX: ffff888107260800 RCX: 0000000000000000
[   38.155413] RDX: 0000000080000000 RSI: ffffea00041cab80 RDI: 00000000ffffffff
[   38.175965] Freeing initrd memory: 62640K
[   38.155413] RBP: ffffc9004044bd38 R08: 0000000000000901 R09: ffffea00041cab00
[   38.155413] R10: 0000000000000002 R11: 0000000000000000 R12: ffffc90040435008
[   38.155413] R13: 0000000000080000 R14: 00000000efa00000 R15: 0000000000000000
[   38.155413] FS:  0000000000000000(0000) GS:ffff88fef4180000(0000) knlGS:0000000000000000
[   38.287414] CS:  e030 DS: 0000 ES: 0000 CR0: 0000000080050033
[   38.309557] CR2: ffffc90042880018 CR3: 000000000260a000 CR4: 0000000000050660
[   38.332403] Kernel panic - not syncing: Fatal exception
[   38.351414] Rebooting in 20 seconds..



-boris




More information about the linux-riscv mailing list