[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BN9PR11MB5276398787A61A1EE8AF92E48CE72@BN9PR11MB5276.namprd11.prod.outlook.com>
Date: Mon, 20 Jan 2025 07:29:45 +0000
From: "Tian, Kevin" <kevin.tian@...el.com>
To: "ankita@...dia.com" <ankita@...dia.com>, "jgg@...dia.com"
<jgg@...dia.com>, "alex.williamson@...hat.com" <alex.williamson@...hat.com>,
"yishaih@...dia.com" <yishaih@...dia.com>,
"shameerali.kolothum.thodi@...wei.com"
<shameerali.kolothum.thodi@...wei.com>, "zhiw@...dia.com" <zhiw@...dia.com>
CC: "aniketa@...dia.com" <aniketa@...dia.com>, "cjia@...dia.com"
<cjia@...dia.com>, "kwankhede@...dia.com" <kwankhede@...dia.com>,
"targupta@...dia.com" <targupta@...dia.com>, "Sethi, Vikram"
<vsethi@...dia.com>, "Currid, Andy" <acurrid@...dia.com>,
"apopple@...dia.com" <apopple@...dia.com>, "jhubbard@...dia.com"
<jhubbard@...dia.com>, "danw@...dia.com" <danw@...dia.com>,
"anuaggarwal@...dia.com" <anuaggarwal@...dia.com>, "mochs@...dia.com"
<mochs@...dia.com>, "kvm@...r.kernel.org" <kvm@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v4 2/3] vfio/nvgrace-gpu: Expose the blackwell device PF
BAR1 to the VM
> From: ankita@...dia.com <ankita@...dia.com>
> Sent: Saturday, January 18, 2025 7:37 AM
> @@ -780,23 +787,31 @@ nvgrace_gpu_init_nvdev_struct(struct pci_dev
> *pdev,
> * memory (usemem) is added to the kernel for usage by the VM
> * workloads. Make the usable memory size memblock aligned.
> */
> - if (check_sub_overflow(memlength, RESMEM_SIZE,
> + if (check_sub_overflow(memlength, resmem_size,
> &nvdev->usemem.memlength)) {
> ret = -EOVERFLOW;
> goto done;
> }
>
> - /*
> - * The USEMEM part of the device memory has to be MEMBLK_SIZE
> - * aligned. This is a hardwired ABI value between the GPU FW and
> - * VFIO driver. The VM device driver is also aware of it and make
> - * use of the value for its calculation to determine USEMEM size.
> - */
> - nvdev->usemem.memlength = round_down(nvdev-
> >usemem.memlength,
> - MEMBLK_SIZE);
> - if (nvdev->usemem.memlength == 0) {
> - ret = -EINVAL;
> - goto done;
> + if (!nvdev->has_mig_hw_bug_fix) {
> + /*
> + * If the device memory is split to workaround the MIG bug,
> + * the USEMEM part of the device memory has to be
> MEMBLK_SIZE
> + * aligned. This is a hardwired ABI value between the GPU FW
> and
> + * VFIO driver. The VM device driver is also aware of it and
> make
> + * use of the value for its calculation to determine USEMEM
> size.
> + * Note that the device memory may not be 512M aligned.
> + *
> + * If the hardware has the fix for MIG, there is no
> requirement
> + * for splitting the device memory to create RESMEM. The
> entire
> + * device memory is usable and will be USEMEM.
Just double confirm. With the fix it's not required to have the usemem
512M aligned, or does hardware guarantee that usemem is always
512M aligned?
And it's clearer to return early when the fix is there so the majority of
the existing code can be left intact instead of causing unnecessary
indent here.
Powered by blists - more mailing lists