I have been trying to reserve more bridge memory for PCI hot plug devices using the kernel command line option 'pci=hpmemsize=256M,realloc'. This ends up causing an issue for non-prefetchable memory where the kernel fails to assign memory due to the size used for hpmemsize.

I actually only need to reserve hotplug bridge memory for prefetchable memory and not non-prefetchable memory, but the hpmemsize option seems to apply to both. Is there any way to only reserve extra hotplug bridge prefetchable memory and use the default for non-prefetchable memory?


I know it has been almost four years, but there is finally a solution as of 2020-01-27.

Since Linux v5.5 has been released with my commit d7b8a217521ca21e2c6391da88d4928c6ce1f539, it is possible to do what you want with:


My commit kept the existing kernel parameters the same, whilst adding pci=hpmmiosize and pci=hpmmioprefsize to control MMIO and MMIO_PREF sizes independently.

You can see more information at: https://www.kernel.org/doc/html/v5.5/admin-guide/kernel-parameters.html

You can find the commit here: https://github.com/torvalds/linux/commit/d7b8a217521ca21e2c6391da88d4928c6ce1f539

If you want to use a kernel version before v5.5, you will have to apply this commit to the source code and build it yourself.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.