On Mon, Jun 4, 2018 at 1:31 AM Bart Van Assche <Bart.VanAssche@xxxxxxx> wrote: > > On Tue, 2018-05-29 at 11:17 -0700, Evan Green wrote: > > This change adds the configuration descriptor to the UFS > > sysfs interface. This is done in preparation for making the > > interface writable, which will enable provisioning UFS devices > > via Linux. > > > > The configuration descriptor is laid out as a header, then a set of > > (usually 8) copies of the same descriptor for each unit. Rather than > > creating 8 sets of the same attribute, this interface adds a cfg_unit > > file, which can be set as an index that defines which of the 8 > > configuration unit descriptors are being shown through sysfs. > > I don't know any other example of a sysfs attribute that controls the > contents of another sysfs attribute so I don't know whether this kind > of behavior is acceptable for sysfs attributes. Additionally, how can > these two sysfs attributes be used together from concurrently running > processes without triggering a race condition? > > Bart. Hi Bart, I was following the example of rpm_lvl and spm_lvl in this driver, whose values control what is shown in rpm_target_dev_state and rpm_target_link_state (and spm equivalents). My original thinking was that provisioning the high level storage configuration of a UFS disk is by definition a single threaded one-time-only activity. However Stanislav and others have also expressed concerns about this mechanism, so it sounds like I should revise it. I'm hoping Stanislav will comment on one of two possible approaches I suggested in the cover letter. -Evan