arm SMP on Cortex-A15

Ian Lepore ian at FreeBSD.org
Tue Mar 18 13:25:57 UTC 2014


On Mon, 2014-03-17 at 09:29 +0100, Wojciech Macek wrote:
> Hi,
> 
> Finally I've found some time to continue SMP hacking. It seems that I
> isolated the tlb/pmam failures and developed two simple patches that help.
> There are still some pmap changes and TEX remap left, but I don't want to
> use them now.
> https://drive.google.com/folderview?id=0B-7yTLrPxaWtSzZPUGgtM3pnUjg&usp=sharing
> * 01 - ensure that TTB is set before TLB invalidation and flush BTB to
> comply the specs
> * 02 - add missing TLB invalidations to pmap and fix invalidation order
> 
> I chose buildworld -j4 as a stresstest, and run it on Arndale (USB rootfs)
> and a different 4-core a15 chip (SATA rootfs). On both setups test passed
> and was significantly faster than the one with previous patchset.
> 
> I'd like to submit these changes to FreeBSD tree (with some help from our
> local committers), so any comments and testing are really appreciated.
> 
> Best regards,
> Wojtek

The first patch looks fine and is working without any problems for me.

For the second patch, I propose the attached similar patch which
combines your changes with some I got from Olivier.  The main
differences are moving the tlb flush outside the loop when propagating a
change to all L1s, and moving the tlb flush (rather than adding another)
in pmap_kenter_internal().

I believe even with the second patch there may still be some missing tlb
flushes.

-- Ian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smp_patch_02a.patch
Type: text/x-patch
Size: 1847 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20140318/7f096cc6/attachment.bin>


More information about the freebsd-arm mailing list