diff mbox series

hotplug: Restore block-tap phy compatibility

Message ID 20240516022212.5034-1-jandryuk@gmail.com (mailing list archive)
State New
Headers show
Series hotplug: Restore block-tap phy compatibility | expand

Commit Message

Jason Andryuk May 16, 2024, 2:22 a.m. UTC
From: Jason Andryuk <jason.andryuk@amd.com>

From: Jason Andryuk <jason.andryuk@amd.com>

backendtype=phy using the blktap kernel module needs to use write_dev,
but tapback can't support that.  tapback should perform better, but make
the script compatible with the old kernel module again.

Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
---
This is tested with tapback, but untested with phy/blkback since I don't
have the kernel module setup.

 tools/hotplug/Linux/block-tap | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

Comments

Jan Beulich May 16, 2024, 7:41 a.m. UTC | #1
On 16.05.2024 04:22, Jason Andryuk wrote:
> From: Jason Andryuk <jason.andryuk@amd.com>
> 
> From: Jason Andryuk <jason.andryuk@amd.com>

Two identical From: (also in another patch of yours, while in yet another one
you have two _different_ ones, when only one will survive into the eventual
commit anyway)?

> backendtype=phy using the blktap kernel module needs to use write_dev,
> but tapback can't support that.  tapback should perform better, but make
> the script compatible with the old kernel module again.
> 
> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>

Should there be a Fixes: tag here?

Jan
Jason Andryuk May 16, 2024, 1:52 p.m. UTC | #2
On 2024-05-16 03:41, Jan Beulich wrote:
> On 16.05.2024 04:22, Jason Andryuk wrote:
>> From: Jason Andryuk <jason.andryuk@amd.com>
>>
>> From: Jason Andryuk <jason.andryuk@amd.com>
> 
> Two identical From: (also in another patch of yours, while in yet another one
> you have two _different_ ones, when only one will survive into the eventual
> commit anyway)?

Sorry about that.  Since I was sending from my gmail account, I thought 
I needed explicit From: lines to ensure the authorship was listed w/ 
amd.com.  I generated the patches with `git format-patch --from`, to get 
the explicit From: lines, and then sent with `git send-email`.  The 
send-email step then inserted the additional lines.  I guess it added 
 From amd.com since I had changed to that address in .gitconfig.

>> backendtype=phy using the blktap kernel module needs to use write_dev,
>> but tapback can't support that.  tapback should perform better, but make
>> the script compatible with the old kernel module again.
>>
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
> 
> Should there be a Fixes: tag here?

That makes sense.

Fixes: 76a484193d ("hotplug: Update block-tap")

Thanks,
Jason
diff mbox series

Patch

diff --git a/tools/hotplug/Linux/block-tap b/tools/hotplug/Linux/block-tap
index 126e472786..8661ce77e3 100755
--- a/tools/hotplug/Linux/block-tap
+++ b/tools/hotplug/Linux/block-tap
@@ -20,9 +20,13 @@ 
 #
 # Disks should be specified using the following syntax:
 #
+# For use with tapback (vbd3) (preferred):
 # vdev=xvda,backendtype=tap,format=vhd,target=/srv/target.vhd
 #
-# format is either "aio" (for raw files), or "vhd"
+# For use with blkback and the blktap2 kernel module:
+# script=block-tap,vdev=xvda,target=<type>:<file>
+#
+# format/<type> is either "aio" (for raw files), or "vhd"
 
 dir=$(dirname "$0")
 . "$dir/block-common.sh"
@@ -205,12 +209,17 @@  add()
 
     xenstore_write "$XENBUS_PATH/pid" "$pid"
     xenstore_write "$XENBUS_PATH/minor" "$minor"
-    # dev, as a unix socket, would end up with major:minor 0:0 in
-    # physical-device if write_dev were used.  tapback would be thrown off by
-    # that incorrect minor, so just skip writing physical-device.
-    xenstore_write "$XENBUS_PATH/physical-device-path" "$dev"
 
-    success
+    if [ "$XENBUS_TYPE" = "vbd3" ] ; then
+        # $dev, as a unix socket, has major:minor 0:0.  If write_dev writes
+        # physical-device, tapback would use that incorrect minor 0.  So don't
+        # write physical-device.
+        xenstore_write "$XENBUS_PATH/physical-device-path" "$dev"
+
+        success
+    else
+        write_dev "$dev"
+    fi
 
     release_lock "block"
 }