Hi All,
I have several ia32e systems with 8 gig that panic on install and first boot. The panic is arch/x86_64/swiotlb.c (working from memory so I might be a bit off) and its in the routine that I think is trying to allocate another chunk of memory for the "Software I/O Translation Buffer". I am guessing it needs to allocate contiguous chunks of memory and that is why it fails on the realloc.
Anyway, on install the only way I can get the install to work is to set "mem=512" or something way below 8Gig. Whereas once the machine is loaded I can get it to boot by without a panic by passing the kernel arg swiotlb set to some rather larger value like 16384. Doing this with varying values during install yields either the same panic or causes a failure of the kernel to detect the cdrom device due to some "resource conflict", which why on a hunch a fellow engineer tried the mem option.
Anyway, we can live with this work around if we have to, but I was wondering a couple of things:
- Is there any metric to choose a proper value for ioswtbl? - Since its failing to do the re-alloc in the boot kernel am I likely to see this occur on the installed kernel at some inopportune moment? - If there is such a metric does anyone have any ideas on how it might could be grafted into the kernel itself in such a way that all interested parties would be OK with such a patch?
And of course if anyone else has seen this, I would be interested in their knowledge on the issue.
Just so you know I familiar with this enough to know that ia32e (nocona/lindhurst 64 bit one off copy of AMD 64 bit processors) does not contain an IOMMU (unlike the AMD processor) and thus the kernel developers had to do a serious hack creating this bounce buffer like thing. Which is all to say I understand why its there, and that on the ia32e systems I have to live with it, I just want it to be stable or find some way to make it so.
Thanks...james