Re: [PRE-REVIEW PATCH 00/16] Modernize the tasklet API

Romain Perier
2019-10-01T17:48:15Z

[-- Attachment #1: Type: text/plain, Size: 2399 bytes --]

On Mon, Sep 30, 2019 at 04:06:50PM -0700, Kees Cook wrote:
> On Sun, Sep 29, 2019 at 06:30:12PM +0200, Romain Perier wrote:
> This is looking really good; thank you!

Glad to read this :)

> I think for easier review it
> would make sense to break out the "special" cases (where you're changing
> structures, etc) into their own patches (and not as a bulk change --
> they need review by different subsystem maintainers, etc).
>
> Then the patch phases can be:
>
> 1) Introduce new APIs and casts
> 2) Convert special cases include passing the tasklet as their .data
> (while also changing the prototypes and replacing tasklet_init() with
> tasklet_setup())

=> So, one commit per driver for preparing the data structure to
own a sub "struct tasklet_struct" + tasklet_init() ->
tasklet_setup() with use of "from_tasklet" in the same commit.
Right ?

For example:
the commit "[PRE-REVIEW PATCH 03/16] mmc:
renesas_sdhi: Prepare to use the new tasklet API"

would contain changes for preparing the driver to use a
"struct tasklet_struct" correctly + convert the driver to
the new API (tasklet_init() -> tasklet_setup())

Same for commit "[PRE-REVIEW PATCH 04/16] net: liquidio: Prepare
to use the new tasklet API".

This is what you had in mind ?

> 3) Convert DECLARE_TASKLET() users to the same

Yeah, this is what you explain in reply to "[PRE-REVIEW PATCH 12/16]
tasklet: Pass tasklet_struct pointer as .data in DECLARE_TASKLET", right
?

> 4) Manual one-off conversions of tasklet_init() -> tasklet_setup()
> 5) Mechanical mass conversion of tasklet_init() -> tasklet_setup()

See the reply to the commit "treewide:" about this

> 6) Mass removal of .data argument from DECLARE_TASKLET()
> 7) tasklet API internal swap and removal of .data
> 8) tasklet_init() and helper cast removals.

Ack

>
> Step 1 needs to happen in an -rc1 (e.g. v5.5-rc1).
>
> Then steps 2, 3, and 4 can happen simultaneously across all the
> maintainers that need to be aware of it and land in the next release
> (the linux-next for v5.6).
>
> Finally steps 5, 6, 7, and 8 happen in the next release's -rc1
> (v5.6-rc1).
>
> If we can get the "phase 1" patch ready quick, maybe we can get into
> -rc2 for v5.4 and move things up by a release...
>
> -Kees
>

Thanks for your time,

Regards,
Romain

> --
> Kees Cook

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]