All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Iouri Tarassov <iourit@linux.microsoft.com>
Cc: kys@microsoft.com, haiyangz@microsoft.com,
	sthemmin@microsoft.com, wei.liu@kernel.org,
	linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org,
	spronovo@microsoft.com
Subject: Re: [PATCH v1 8/9] drivers: hv: dxgkrnl: Implement various WDDM ioctls
Date: Thu, 13 Jan 2022 08:47:41 +0100	[thread overview]
Message-ID: <Yd/ZHYbIHQvHp40a@kroah.com> (raw)
In-Reply-To: <b3abd5afcf0f46b261064fd0aa4c33a708fbb66b.1641937420.git.iourit@linux.microsoft.com>

On Wed, Jan 12, 2022 at 11:55:13AM -0800, Iouri Tarassov wrote:
> Implement various WDDM IOCTLs.
> 
> - IOCTLs to handle GPU virtual addressing (VA):
>    LX_DXRESERVEGPUVIRTUALADDRESS (D3DKMTReserveGpuVertualAddress)
>    LX_DXFREEGPUVIRTUALADDRESS (D3DKMTFreeGpuVertualAddress)
>    LX_DXMAPGPUVIRTUALADDRESS (D3DKMTMapGpuVertualAddress)
>    LX_DXUPDATEGPUVIRTUALADDRESS (D3DKMTUpdateGpuVertualAddress)
> 
>    WDDM supports a compute device to use GPU virtual addresses when
>    accessing allocation memory. A GPU VA could be reserved or mapped
>    to a GPU allocation. The video memory manager on the host updates
>    GPU page tables for the virtual addresses.
> 
> - IOCTLs to manage residency of GPU accessing allocations:
>    LX_DXMAKERESIDENT (D3DKMTMakeResident)
>    LX_DXEVICT (D3DKMTEvict)
> 
>    An allocation is resident when GPU is setup to access it. The
>    current WDDM design does not support on demand GPU page faulting.
>    An allocation must be resident (be in the local device memory or
>    in non-pageable system memory) before GPU is allowed to access it.
> 
> - IOCTLs to offer/reclaim alloctions:
>    LX_DXOFFERALLOCATIONS {D3DKMTOfferAllocations)
>    LX_DXRECLAIMALLOCATIONS2 (D3DKMTReclaimAllocations)
> 
>    When a user mode driver does not need an allocation, it can
>    "offer" it. This means that the allocation is not in use and it
>    local device memory could be reclaimed and given to another allocation.
>    When the allocation is again needed, the caller can "reclaim" the
>    allocations. If the allocation is still in the device local memory,
>    the reclaim operation succeeds. If not the called must restore the
>    content of the allocation before it can be used by the device.
> 
> - LX_DXESCAPE (D3DKMTEscape)
>   This IOCTL is used to send/receive private data between user mode
>   driver and kernel mode driver. This is an extension of the WDDM APIs.
> 
> - LX_DXGETDEVICESTATE (D3DKMTGetDeviceState)
>   The IOCTL is used to get the current execution state of the dxgdevice
>   object.
> 
> - LX_DXMARKDEVICEASERROR (D3DKMTMarkDeviceAsError)
>   The IOCTL is used to bring the dxgdevice object to the error state.
>   Subsequent calls to use the device object will fail.
> 
> - LX_DXQUERYSTATISTICS (D3DKMTQuerystatistics)
>   The IOCTL is used to query various statistics from the compute device
>   on the host.
> 
> - IOCTLs to deal with execution context priorities
>   LX_DXGETCONTEXTINPROCESSSCHEDULINGPRIORITY
>   LX_DXGETCONTEXTSCHEDULINGPRIORITY
>   LX_DXSETCONTEXTINPROCESSSCHEDULINGPRIORITY
>   LX_DXSETCONTEXTSCHEDULINGPRIORITY
> 
> Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
> ---
>  drivers/hv/dxgkrnl/dxgkrnl.h  |    2 +
>  drivers/hv/dxgkrnl/dxgvmbus.c | 1466 ++++++++++++++++++++++++++++---
>  drivers/hv/dxgkrnl/dxgvmbus.h |   15 +
>  drivers/hv/dxgkrnl/ioctl.c    | 1524 ++++++++++++++++++++++++++++++++-
>  4 files changed, 2831 insertions(+), 176 deletions(-)

Again, break this up into smaller pieces.  Would you want to review all
of these at the same time?

Remember, you write code for people to review and understand first, and
the compiler second.  With large changes like this, you are making it
difficult for people to review, which is your target audience.

I'll stop here, please fix up this patch series into something that is
reviewable.

thanks,

greg k-h

  reply	other threads:[~2022-01-13  7:47 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-12 19:55 [PATCH v1 0/9] drivers: hv: dxgkrnl: Driver overview Iouri Tarassov
2022-01-12 19:55 ` [PATCH v1 1/9] drivers: hv: dxgkrnl: Driver initialization and creation of dxgadapter Iouri Tarassov
2022-01-13  1:49   ` kernel test robot
2022-01-13  1:49     ` kernel test robot
2022-01-13  6:42   ` kernel test robot
2022-01-13  6:42     ` kernel test robot
2022-01-13  7:43   ` Greg KH
2022-01-13  7:46   ` Greg KH
2022-01-14  0:08     ` Iouri Tarassov
2022-01-14  5:40       ` Greg KH
2022-01-12 19:55 ` [PATCH v1 2/9] drivers: hv: dxgkrnl: Open device object, adapter enumeration, dxgdevice, dxgcontext creation Iouri Tarassov
2022-01-13  7:41   ` Greg KH
2022-01-13  7:44   ` kernel test robot
2022-01-13  7:44     ` kernel test robot
2022-01-12 19:55 ` [PATCH v1 3/9] drivers: hv: dxgkrnl: Implement creation/destruction of GPU allocations/resources Iouri Tarassov
2022-01-13  8:56   ` kernel test robot
2022-01-13  8:56     ` kernel test robot
2022-01-12 19:55 ` [PATCH v1 4/9] drivers: hv: dxgkrnl: Implement operations with GPU sync objects Iouri Tarassov
2022-01-12 19:55 ` [PATCH v1 5/9] drivers: hv: dxgkrnl: Implement sharing resources and " Iouri Tarassov
2022-01-12 19:55 ` [PATCH v1 6/9] drivers: hv: dxgkrnl: Seal the shared resource object when dxgk_share_objects is called Iouri Tarassov
2022-01-12 19:55 ` [PATCH v1 7/9] drivers: hv: dxgkrnl: Implementation of submit command, paging and hardware queue Iouri Tarassov
2022-01-12 19:55 ` [PATCH v1 8/9] drivers: hv: dxgkrnl: Implement various WDDM ioctls Iouri Tarassov
2022-01-13  7:47   ` Greg KH [this message]
2022-01-14  0:19     ` Iouri Tarassov
2022-01-14  5:38       ` Greg KH
2022-01-15  2:16         ` Iouri Tarassov
2022-01-12 19:55 ` [PATCH v1 9/9] drivers: hv: dxgkrnl: Implement DXGSYNCFILE Iouri Tarassov
2022-01-13  7:41   ` Greg KH
2022-01-14 22:26     ` Iouri Tarassov
2022-01-14 18:03   ` Daniel Vetter
2022-01-14 18:03     ` Daniel Vetter
2022-01-14 18:52     ` Iouri Tarassov
2022-01-17  9:35       ` Daniel Vetter
2022-01-17  9:35         ` Daniel Vetter
2022-02-05  0:35         ` Iouri Tarassov
2022-02-05  0:35           ` Iouri Tarassov
2022-02-08 12:28           ` Daniel Vetter
2022-02-08 12:28             ` Daniel Vetter
2022-01-12 22:12 ` [PATCH v1 0/9] drivers: hv: dxgkrnl: Driver overview Nathan Chancellor
2022-01-12 23:39   ` Iouri Tarassov
2022-01-26  0:27     ` Nathan Chancellor
2022-02-05  0:31       ` Iouri Tarassov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Yd/ZHYbIHQvHp40a@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=haiyangz@microsoft.com \
    --cc=iourit@linux.microsoft.com \
    --cc=kys@microsoft.com \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=spronovo@microsoft.com \
    --cc=sthemmin@microsoft.com \
    --cc=wei.liu@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.