Message ID | 20250409000835.285105-7-romank@linux.microsoft.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Confidential VMBus | expand |
On Tue, Apr 08, 2025 at 05:08:35PM -0700, Roman Kisel wrote: > The device bit that indicates that the device is capable of I/O > with private pages lets avoid excessive copying in the Hyper-V > SCSI driver. > > Set that bit equal to the confidential external memory one to > not bounce buffer Drivers have absolutely no business telling this. The need for bounce buffering or not is a platform/IOMMU decision and not one specific to a certain device or driver.
On 4/9/2025 3:53 AM, Christoph Hellwig wrote: > On Tue, Apr 08, 2025 at 05:08:35PM -0700, Roman Kisel wrote: >> The device bit that indicates that the device is capable of I/O >> with private pages lets avoid excessive copying in the Hyper-V >> SCSI driver. >> >> Set that bit equal to the confidential external memory one to >> not bounce buffer > > Drivers have absolutely no business telling this. The need for bounce > buffering or not is a platform/IOMMU decision and not one specific to > a certain device or driver. Seemed to work although I cannot claim nothing is going to be broken ever. It did appear from the code that one could have this per-device bit. As I understand, you're saying this is architecturally broken. Do you think a broader set of changes would improve the implementation? >
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index a8614e54544e..f647f8fc2f8f 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -686,6 +686,8 @@ static void handle_sc_creation(struct vmbus_channel *new_sc) struct vmstorage_channel_properties props; int ret; + dev->use_priv_pages_for_io = new_sc->confidential_external_memory; + stor_device = get_out_stor_device(device); if (!stor_device) return;
The device bit that indicates that the device is capable of I/O with private pages lets avoid excessive copying in the Hyper-V SCSI driver. Set that bit equal to the confidential external memory one to not bounce buffer Signed-off-by: Roman Kisel <romank@linux.microsoft.com> --- drivers/scsi/storvsc_drv.c | 2 ++ 1 file changed, 2 insertions(+)