Den tors 22 apr. 2021 kl 23:13 skrev Scott Bennett <sbennett1...@gmail.com>:
> > Diff below remove the KERNEL_LOCK()/UNLOCK() dance from uvm_fault() for
> > both amd64 and sparc64.  That means the kernel lock will only be taken
> > for lower faults and some amap/anon code will now run without it.
> >
> > I'd be interested to have this tested and see how much does that impact
> > the build time of packages.
> >
> > We should be able to do the switch on an arch-by-arch basis.  It's
> > easier for me to develop & debug on these two architectures so I started
> > with them.  If you want to unlock another architecture and report back,
> > I'd be glad.
>
> I'd be willing to test this on octeon. However, with my poor little EdgeRouter
> Lite, I would only be able to test building a few packages.
>
> Would this be the correct diff for octeon?

Yes, there are a few more uvm_fault()s but those are in the parts
relating to FPU emulation which I also didn't unlock but I am running
exactly this on a few of my octeons too, without noticed issues.


>                         pcb->pcb_onfault = 0;
> -                       KERNEL_LOCK();
>                         rv = uvm_fault(kernel_map, va, 0, access_type);
> -                       KERNEL_UNLOCK();
>                         pcb->pcb_onfault = onfault;


>                 pcb->pcb_onfault = 0;
> -               KERNEL_LOCK();
>                 rv = uvm_fault(map, va, 0, access_type);
> -               KERNEL_UNLOCK();
>                 pcb->pcb_onfault = onfault;

-- 
May the most significant bit of your life be positive.

Reply via email to