Re: [RFC PATCH kernel] Revert "net/mlx4_core: Set UAR page size to 4KB regardless of system page size"

From: Alexey Kardashevskiy
Date: Tue Mar 15 2016 - 22:08:13 EST


On 03/15/2016 09:40 PM, Or Gerlitz wrote:
On Tue, Mar 15, 2016 at 12:19 PM, Alexey Kardashevskiy <aik@xxxxxxxxx> wrote:
This reverts commit 85743f1eb34548ba4b056d2f184a3d107a3b8917.

Without this revert, POWER "pseries" KVM guests with a VF passed to a guest
using VFIO fail to bring the driver up:

mlx4_core: Mellanox ConnectX core driver v2.2-1 (Feb, 2014)
mlx4_core: Initializing 0000:00:00.0
mlx4_core 0000:00:00.0: enabling device (0000 -> 0002)
mlx4_core 0000:00:00.0: Detected virtual function - running in slave mode
mlx4_core 0000:00:00.0: Sending reset
mlx4_core 0000:00:00.0: Sending vhcr0
mlx4_core 0000:00:00.0: HCA minimum page size:512
mlx4_core 0000:00:00.0: UAR size:4096 != kernel PAGE_SIZE of 65536
mlx4_core 0000:00:00.0: Failed to obtain slave caps

Both host and guest use 64K system pages.

How to fix this properly? Thanks.

The commit message says:

"[..] Regarding backward compatibility in SR-IOV, if hypervisor has
this new code, the virtual OS must be updated. [...]"


So with v4.5 as a host, there is no actual distro available today to use as a guest in the next 6 months (or whatever it takes to backport this partucular patch back there).

You could have added a module parameter to enforce the old behavoir, at least...

And sorry but from the original commit log I could not understand why exactly all existing guests need to be broken. Could you please point me to a piece of documentation describing all this UAR bisuness (what is UAR, why 128 UARs are required and for what, etc). Thanks.


--
Alexey