Messages in this thread | | | Date | Tue, 7 Mar 2023 15:06:10 +0100 | Subject | Re: [PATCH v6 20/20] irqdomain: Switch to per-domain locking | From | Juergen Gross <> |
| |
On 07.03.23 14:51, David Woodhouse wrote: > On Mon, 2023-02-13 at 11:43 +0100, Johan Hovold wrote: >> The IRQ domain structures are currently protected by the global >> irq_domain_mutex. Switch to using more fine-grained per-domain locking, >> which can speed up parallel probing by reducing lock contention. >> >> On a recent arm64 laptop, the total time spent waiting for the locks >> during boot drops from 160 to 40 ms on average, while the maximum >> aggregate wait time drops from 550 to 90 ms over ten runs for example. >> >> Note that the domain lock of the root domain (innermost domain) must be >> used for hierarchical domains. For non-hierarchical domains (as for root >> domains), the new root pointer is set to the domain itself so that >> &domain->root->mutex always points to the right lock. >> >> Also note that hierarchical domains should be constructed using >> irq_domain_create_hierarchy() (or irq_domain_add_hierarchy()) to avoid >> having racing allocations access a not fully initialised domain. As a >> safeguard, the lockdep assertion in irq_domain_set_mapping() will catch >> any offenders that also fail to set the root domain pointer. >> >> Tested-by: Hsin-Yi Wang <hsinyi@chromium.org> >> Tested-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com> >> Signed-off-by: Johan Hovold <johan+linaro@kernel.org> > > Broke Xen.
Fixed with commit ad32ab9604f2.
Juergen [unhandled content-type:application/pgp-keys][unhandled content-type:application/pgp-signature] | |