Message ID | 20221124115023.2437291-1-peter.maydell@linaro.org |
---|---|
Headers | show |
Series | Convert most CPU classes to 3-phase reset | expand |
On 24/11/22 12:50, Peter Maydell wrote: > This patchset converts the TYPE_CPU base class and most subclasses > to use 3-phase reset. (The exception is s390, which is doing > something a bit odd with its reset, so the conversion there isn't > going to be simple like these others. So I'll do that one > separately.) > > The rationale here is that we should be able to get rid of > all the remaining uses of device_class_set_parent_reset() > and remove/simplify some of the transitional code that's > currently bridging between "legacy" reset and 3-phase reset. > > NB: even with this series, it's not possible to usefully do > anything requiring 3-phase reset of a CPU yet, because all > CPU objects get ad-hoc reset by some code somewhere doing > a cpu_reset() call on them, which will just do all 3 phases > in order. I would like to try to address that eventually, > but it's not trivial. > > thanks > -- PMM > > Peter Maydell (19): > hw/core/cpu-common: Convert TYPE_CPU class to 3-phase reset > target/arm: Convert to 3-phase reset > target/avr: Convert to 3-phase reset > target/cris: Convert to 3-phase reset > target/hexagon: Convert to 3-phase reset > target/i386: Convert to 3-phase reset > target/loongarch: Convert to 3-phase reset > target/m68k: Convert to 3-phase reset > target/microblaze: Convert to 3-phase reset > target/mips: Convert to 3-phase reset > target/nios2: Convert to 3-phase reset > target/openrisc: Convert to 3-phase reset > target/ppc: Convert to 3-phase reset > target/riscv: Convert to 3-phase reset > target/rx: Convert to 3-phase reset > target/sh4: Convert to 3-phase reset > target/sparc: Convert to 3-phase reset > target/tricore: Convert to 3-phase reset > target/xtensa: Convert to 3-phase reset Series: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On 11/24/22 03:50, Peter Maydell wrote: > Peter Maydell (19): > hw/core/cpu-common: Convert TYPE_CPU class to 3-phase reset > target/arm: Convert to 3-phase reset > target/avr: Convert to 3-phase reset > target/cris: Convert to 3-phase reset > target/hexagon: Convert to 3-phase reset > target/i386: Convert to 3-phase reset > target/loongarch: Convert to 3-phase reset > target/m68k: Convert to 3-phase reset > target/microblaze: Convert to 3-phase reset > target/mips: Convert to 3-phase reset > target/nios2: Convert to 3-phase reset > target/openrisc: Convert to 3-phase reset > target/ppc: Convert to 3-phase reset > target/riscv: Convert to 3-phase reset > target/rx: Convert to 3-phase reset > target/sh4: Convert to 3-phase reset > target/sparc: Convert to 3-phase reset > target/tricore: Convert to 3-phase reset > target/xtensa: Convert to 3-phase reset Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On 24/11/22 14:46, Philippe Mathieu-Daudé wrote: > On 24/11/22 12:50, Peter Maydell wrote: >> This patchset converts the TYPE_CPU base class and most subclasses >> to use 3-phase reset. (The exception is s390, which is doing >> something a bit odd with its reset, so the conversion there isn't >> going to be simple like these others. So I'll do that one >> separately.) Note, we can then remove scripts/coccinelle/cpu-reset.cocci.
On Wed, 30 Nov 2022 at 10:51, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > On 24/11/22 14:46, Philippe Mathieu-Daudé wrote: > > On 24/11/22 12:50, Peter Maydell wrote: > >> This patchset converts the TYPE_CPU base class and most subclasses > >> to use 3-phase reset. (The exception is s390, which is doing > >> something a bit odd with its reset, so the conversion there isn't > >> going to be simple like these others. So I'll do that one > >> separately.) > Note, we can then remove scripts/coccinelle/cpu-reset.cocci. What's our usual practice for out-of-date conversion coccinelle scripts? That particular script was "we'll never need this again" pretty much from the moment it was checked in, because we did the conversion of all the targets in one go. But it's still useful in some sense as a "this is an example of how to do this kind of change with a coccinelle script"... thanks -- PMM
On 30/11/22 13:38, Peter Maydell wrote: > On Wed, 30 Nov 2022 at 10:51, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: >> >> On 24/11/22 14:46, Philippe Mathieu-Daudé wrote: >>> On 24/11/22 12:50, Peter Maydell wrote: >>>> This patchset converts the TYPE_CPU base class and most subclasses >>>> to use 3-phase reset. (The exception is s390, which is doing >>>> something a bit odd with its reset, so the conversion there isn't >>>> going to be simple like these others. So I'll do that one >>>> separately.) >> Note, we can then remove scripts/coccinelle/cpu-reset.cocci. > > What's our usual practice for out-of-date conversion coccinelle > scripts? That particular script was "we'll never need this again" > pretty much from the moment it was checked in, because we did > the conversion of all the targets in one go. But it's still > useful in some sense as a "this is an example of how to do > this kind of change with a coccinelle script"... The pattern I observed last years is: (a) If one-shot transformation, log the script in the commit description, (b) If the script can be used again in the future, commit it in scripts/coccinelle/, (c) Complex scripts are committed in scripts/coccinelle/ as example/reference. I am fine keeping scripts/coccinelle/cpu-reset.cocci as an example (c). Regards, Phil.
On Thu, 24 Nov 2022 at 11:50, Peter Maydell <peter.maydell@linaro.org> wrote: > > This patchset converts the TYPE_CPU base class and most subclasses > to use 3-phase reset. (The exception is s390, which is doing > something a bit odd with its reset, so the conversion there isn't > going to be simple like these others. So I'll do that one > separately.) I plan to pick these up and send them in in a pullreq with various other reset-related patches of mine. thanks -- PMM