[RFC] Raising the UBI version

Boris Brezillon boris.brezillon at free-electrons.com
Wed Jun 22 13:12:07 PDT 2016


On Wed, 22 Jun 2016 21:59:46 +0200
Richard Weinberger <richard at nod.at> wrote:

> Am 22.06.2016 um 17:06 schrieb Boris Brezillon:
> > On Wed, 22 Jun 2016 16:59:50 +0200
> > Richard Weinberger <richard at nod.at> wrote:
> >   
> >> Am 22.06.2016 um 16:52 schrieb Boris Brezillon:  
> >>> So how about defining the following:
> >>> - /sys/class/ubi/version: user-space ABI version (should always be one)    
> >>
> >> Yes. To not break libubi.
> >>  
> >>> - /sys/class/ubi/supported-on-flash-formats: either a bitfield or an
> >>>   integer representing the higher on-flash format version supported by
> >>>   the implementation (which implies that implementations have to
> >>>   support all on-flash formats up-to supported-on-flash-formats)    
> >>
> >> We can do that. But who will evaluate this file?  
> > 
> > ubiformat may need that one to check if the provided ubi image is
> > supported by the implementation.  
> 
> What if someone wants to ubiformat (with MLC support) his mtd0 on an old
> kernel and then reboots into the new one with MLC support?
> I'm not sure if it is wise do forbid that use case since allowing it does not
> hurt.
> 
> Don't get me wrong, I just want to be sure that all new sysfs files we add
> have a clear defined use case and won't hurt us later.

Hm, maybe you're right, exposing this information through sysfs is not
a requirement, but I think we need to store this information in the EC
and/or VID headers, so that the UBI implementation can recognize the
on-flash format.

> 
> >>  
> >>> - /sys/class/ubi/supported-features: the features supported by the
> >>>   implementation (each bit is a specific feature or a set of features).
> >>>   The features may or may not be version dependent.
> >>> - /sys/class/ubi/ubiX/on-flash-format: the on-flash format used on the
> >>>   UBIX device
> >>> - /sys/class/ubi/ubiX/features: the features exposed by this UBIX
> >>>   device    
> >>
> >> I think we should make features depend on version = 2.
> >> IOW when we change the UBI format in a major way version will be 3 and
> >> we maybe use something else to expose features.  
> > 
> > IIUC, we move to version 2 now, because we're using one of the padding
> > byte (word?) to expose the feature flags, correct?
> > It makes sense.  
> 
> I'm not absolutely sure but keeping ->version and adding ->features seems
> the most feasible solution so far.

Okay, let's forget what we expose through sysfs for a moment and focus
on the on-flash format. Do we agree that it's better to keep a version
field encoding the 'major' version of the on-flash format, and
introducing a feature field to allow minor backward-compatible
improvements of a given 'major' version?




More information about the linux-mtd mailing list