[PATCH v4 0/4] Miscellaneous about sbi_tlb and sbi_ipi
Anup Patel
anup at brainfault.org
Thu Apr 6 00:00:40 PDT 2023
On Thu, Apr 6, 2023 at 10:27 AM Anup Patel <anup at brainfault.org> wrote:
>
> On Thu, Mar 16, 2023 at 1:52 PM Xiang W <wxjstz at 126.com> wrote:
> >
> > 在 2023-02-02星期四的 16:51 +0800,Xiang W写道:
> > > Removed the mutual waiting between process and sync in sbi_tlb
> > > Update ipi first then wait together
> > >
> > Please review!
> > Optimization can improve tlb sync efficiency.
> >
> > sequence diagram before optimization:
> > ===================================================================
> > send ipi hart hart 0 hart 1 hart 2 ...
> > + + + +
> > | | | |
> > | update hart 0 | | |
> > +<------------->+--+ | |
> > | | |process | |
> > | | | | |
> > | +<-+ | |
> > | sync | | |
> > +<------------->+ | |
> > | update hart 1 | |
> > +<------------------------->+--+ |
> > | | |process |
> > | | | |
> > | +<-+ |
> > | sync | |
> > +<------------------------->+ |
> > | update hart 2 |
> > +<------------------------------------->+--+
> > | | |process
> > | | |
> > | +<-+
> > | sync |
> > +<------------------------------------->+
> > .
> > .
> > .
> >
> > sequence diagram after optimization:
> > ===================================================================
> > send ipi hart hart 0 hart 1 hart 2 ...
> > + + + +
> > | | | |
> > | update hart 0 | | |
> > +<------------->+--+ | |
> > | update hart 1 | |process | |
> > +<--------------|--|------->+--+ |
> > | update hart 2 +<-+ | |process |
> > +<--------------|-----------|--|------->+--+
> > | | +<-+ | |process
> > | | | | |
> > | sync | | +<-+
> > +<------------->+ | |
> > | sync | |
> > +<------------------------->+ |
> > | sync |
> > +<------------------------------------->+
> > .
> > .
> > .
>
> Sorry for being slow on this series. Overall, the approach looks
> good but I need to review individual patches.
>
> In the meantime, I suggest you try running stress-ng one
> QEMU virt machine with this patch applied in OpenSBI.
To run stress-ng on QEMU virt machine, launch QEMU virt
machine with at least 1G RAM and Fedora RootFS located
at:
https://dl.fedoraproject.org/pub/alt/risc-v/repo/virt-builder-images/images/
https://dl.fedoraproject.org/pub/alt/risc-v/repo/virt-builder-images/images/Fedora-Developer-37-20221130.n.0-nvme.raw.img.xz
I typically run a cyclic stress-ng test as follows:
stress-ng --verbose --seq 4 -t 20 -x cyclic
Regards,
Anup
>
> Regards,
> Anup
>
> >
> > Regards,
> > Xiang W
> >
> > > V4 Changes:
> > > PATCH1: Fixed not adding one to tlb_sync when SBI_FIFO_UNCHANGED
> > > PATCH4: Add comments
> > >
> > > V3 Changes:
> > > PATCH2: Remove missing sync in update
> > > add PATCH4: Optimize sbi_tlb queue waiting
> > >
> > > V2 Changes:
> > > PATCH2: Fix m changes after update IPIs
> > >
> > > Xiang W (4):
> > > lib: sbi: Optimize sbi_tlb
> > > lib: sbi: Optimize sbi_ipi
> > > lib: sbi: rename function of sbi_ipi
> > > lib: sbi: Optimize sbi_tlb queue waiting
> > >
> > > include/sbi/sbi_ipi.h | 3 +++
> > > lib/sbi/sbi_ipi.c | 43 ++++++++++++++++++++++++++++++-------
> > > lib/sbi/sbi_tlb.c | 49 +++++++++++++++++++------------------------
> > > 3 files changed, 61 insertions(+), 34 deletions(-)
> > >
> >
> >
> > --
> > opensbi mailing list
> > opensbi at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/opensbi
More information about the opensbi
mailing list