[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] blkif: reconcile protocol specification with in-use implementations
On Wed, Sep 04, 2024 at 11:11:51AM +0200, Roger Pau Monné wrote: > On Wed, Sep 04, 2024 at 09:39:17AM +0100, Paul Durrant wrote: > > On 04/09/2024 09:21, Roger Pau Monné wrote: > > > > In the absence of that I'm afraid it is a little harder to > > > > judge whether the proposal here is the best we can do at this point. > > > > > > While I don't mind looking at what we can do to better handle 4K > > > sector disks, we need IMO to revert to the specification before > > > 67e1c050e36b, as that change switched the hardcoded sector based units > > > from 512 to 'sector-size', thus breaking the existing ABI. > > > > > > > But that's the crux of the problem. What *is* is the ABI? We apparently > > don't have one that all OS subscribe to. > > At least prior to 67e1c050e36b the specification in blkif.h and (what > I consider) the reference implementation in Linux blk{front,back} > matched. Previous to 67e1c050e36b blkif.h stated: > > /* > * NB. first_sect and last_sect in blkif_request_segment, as well as > * sector_number in blkif_request, are always expressed in 512-byte units. > * However they must be properly aligned to the real sector size of the > * physical disk, which is reported in the "physical-sector-size" node in > * the backend xenbus info. Also the xenbus "sectors" node is expressed in > * 512-byte units. > */ > > I think it was quite clear, and does in fact match the implementation > in Linux. That's wrong, Linux doesn't match the specification before 67e1c050e36b, in particular for "sectors": sectors Values: <uint64_t> The size of the backend device, expressed in units of its logical sector size ("sector-size"). The only implementation that matches this specification is MiniOS (and OMVF). Oh, I didn't notice that that random comment you quoted that comes from the middle of the header have a different definition for "sectors" ... Well, the specification doesn't match with the specification ... and the only possible way to implement the specification is to only ever set "sector-size" to 512... No wonder that they are so many different interpretation of the protocol. Cheers, -- Anthony Perard | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |