Re: [PATCH v7] scsi: ufs: add ioctl interface for query request

From: ygardi
Date: Thu Mar 10 2016 - 10:53:08 EST


> On Wed, Mar 09, 2016 at 08:52:59PM -0000, ygardi@xxxxxxxxxxxxxx wrote:
>> > On Wed, Mar 09, 2016 at 07:09:49PM -0000, ygardi@xxxxxxxxxxxxxx wrote:
>> >> > On Wed, Mar 09, 2016 at 04:11:33PM +0200, Yaniv Gardi wrote:
>> >> >> This patch exposes the ioctl interface for UFS driver via SCSI
>> device
>> >> >> ioctl interface. As of now UFS driver would provide the ioctl for
>> >> query
>> >> >> interface to connected UFS device.
>> >> >>
>> >> >> Reviewed-by: Subhash Jadavani <subhashj@xxxxxxxxxxxxxx>
>> >> >> Signed-off-by: Dolev Raviv <draviv@xxxxxxxxxxxxxx>
>> >> >> Signed-off-by: Gilad Broner <gbroner@xxxxxxxxxxxxxx>
>> >> >> Signed-off-by: Yaniv Gardi <ygardi@xxxxxxxxxxxxxx>
>> >> >
>> >> > What tool is going to use this ioctl? Why does userspcae want to
>> do
>> >> > something "special" with UFS devices? Shouldn't they just be
>> treated
>> >> > like any other normal block device?
>> >> >
>> >>
>> >> Any userspace application can be a tool.
>> >> We already implemented and used a user space application, that sent
>> >> queries to the UFS devices in order to get information and
>> descriptors.
>> >
>> > But do you want to do with that information? Why does userspace care?
>> >
>>
>> i don't really understand the subtext of your question -
>> as ANY ioctl cb, we decided to implement the ioctl callback of this scsi
>> device in order to get information like UNIT DESC, DEVICE DESC, FLAGs,
>> ATTRIBUTES.
>> When dealing with UFS devices, one should be able to read the
>> characteristics of the device. why ? well, why not ?
>
> Why aren't those characteristics just exported as sysfs attributes under
> control by the UFS controller driver? Why do you need/want an ioctl for
> this?
>

Hi greg k-h,

in our code, we used the IOCTL during runtime, in order to determine some
information about the RPMB well known lun.
with the rpmb lun ID we could then go to /dev/sgX and issue
UFS_IOCTL_QUERY to this lun and get the data -
reading the QUERY_DESC_IDN_GEOMETRY descriptor and reading the
QUERY_DESC_IDN_UNIT descriptor.

this was crucial to the work we do in RPMB.

thanks,
Yaniv

>> during development of this driver, it was useful in many cases to be
>> able
>> to communicate with the device, by simple IOCTL command, rather than
>> implementing ad-hock.
>
> Do other storage busses have these types of "custom" ioctls for their
> bus-type alone? For simple attributes like this, shouldn't you be using
> sysfs instead so that it is much easier for userspace tools to get
> access to them?
>
> thanks,
>
> greg k-h
>