On Mon, Feb 27, 2023 at 07:00:10PM -0600, Jassi Brar wrote:
> On Mon, 27 Feb 2023 at 18:58, Tom Rini <tr...@konsulko.com> wrote:
> >
> > On Mon, Feb 27, 2023 at 06:51:35PM -0600, jassisinghb...@gmail.com wrote:
> >
> > > From: Jassi Brar <jaswinder.si...@linaro.org>
> > >
> > > The patchset reduces ~400 lines of code, while keeping the functionality 
> > > same and making
> > > meta-data operations much faster (by using cached structures).
> > >
> > > Issue:
> > >  meta-data copies (primary and secondary) are being handled by the 
> > > backend/storage layer
> > > instead of the common core in fwu.c (as also noted by Ilias)  that is, 
> > > gpt_blk.c manages
> > > meta-data and similarly raw_mtd.c will have to do the same when it 
> > > arrives. The code
> > > could by make smaller, cleaner and optimised.
> > >
> > > Basic idea:
> > >  Introduce  .read_mdata() and .write_mdata() in fwu_mdata_ops  that 
> > > simply read/write
> > > meta-data copy. The core code takes care of integrity and redundancy of 
> > > the meta-data,
> > > as a result we can get rid of every other callback .get_mdata() 
> > > .update_mdata()
> > > .get_mdata_part_num()  .read_mdata_partition()  .write_mdata_partition() 
> > > and the
> > > corresponding wrapper functions thereby making the code 100s of LOC 
> > > smaller.
> > >
> > > Get rid of fwu_check_mdata_validity() and fwu_mdata_check() which 
> > > expected underlying
> > > layer to manage and verify mdata copies.
> > > Implement  fwu_get_verified_mdata(struct fwu_mdata *mdata) public 
> > > function that reads,
> > > verifies and, if needed, fixes the meta-data copies.
> > >
> > > Verified copy of meta-data is now cached as 'g_mdata' in fwu.c, which 
> > > avoids multiple
> > > low-level expensive read and parse calls.
> > > gpt meta-data partition numbers are now cached in gpt_blk.c, so that we 
> > > don't have to do expensive part_get_info() and uid ops.
> > >
> > > Changes since v4:
> > >         * Change fwu-mdata-mtd bindings to not require external changes
> > >         * Handle 'part == BOTH_PARTS' in fwu_sync_mdata
> > >         * use parts_ok[] and parts_mdata[] instead of pri/sec_ok and 
> > > p/s_mdata
> >
> > Did you run this through CI / build sandbox? This doesn't read like you
> > fixed the problem I reported in CI, when I was trying to merge v4.
> >
> I know that remains to be done.
> The dt-bindings for fwu-mdata is changed in this patchset and I
> thought any testcase may be impacted by it.

So you're not expecting this iteration to be merged, as CI doesn't pass,
and that's known? OK.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to