[aarch64-port-dev ] RFR(S) 8248660: AArch64: JDK-Windows: Make _clear_cache and _nop portable

Anton Kozlov akozlov at azul.com
Wed Aug 19 07:41:01 UTC 2020


My bad, sorry. Don't know how I missed that, probably dived into the patch after reading about NOP.

Agree, __builtin___clear_cache change seems correct (I'm not a reviewer)

Thanks,
Anton

On 18.08.2020 22:02, Monica Beckwith wrote:
> Anton - please refer to my email on the builtin__clear_cache fix: https://mail.openjdk.java.net/pipermail/aarch64-port-dev/2020-August/009403.html. (Gist: The original +3 was not correct and hence the change to +4)
> 
> -Monica
> 
> -----Original Message-----
> From: Anton Kozlov <akozlov at azul.com> 
> Sent: Tuesday, August 18, 2020 12:53 PM
> To: Andrew Haley <aph at redhat.com>; Monica Beckwith <Monica.Beckwith at microsoft.com>; aarch64-port-dev at openjdk.java.net
> Cc: openjdk-aarch64 <openjdk-aarch64 at microsoft.com>
> Subject: Re: [aarch64-port-dev ] RFR(S) 8248660: AArch64: JDK-Windows: Make _clear_cache and _nop portable
> 
> Hi,
> 
>> On 8/3/20 11:29 PM, Monica Beckwith wrote:
>>> Hi all, could I please get a review for the following webrev? I had 
>>> previously sent this out for feedback and Kim had provided feedback 
>>> on the usual way to handle such changes: 
>>> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmai
>>> l.openjdk.java.net%2Fpipermail%2Faarch64-port-dev%2F2020-July%2F00927
>>> 2.html&data=02%7C01%7Cmonica.beckwith%40microsoft.com%7C877aba35b
>>> ffc49bc771b08d8439df0d8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C
>>> 637333692914167361&sdata=xm8za2G1bPPqlXoM6yA7CBFg94R1l9F6Gr82ZJMi
>>> EBs%3D&reserved=0
>>>
>>> I have made the needful changes and ran them through JTREG for linux-aarch64, windows-aarch64, windows-x86-64, and linux-x86-64.
>>>
>>> Webrev: https://nam06.safelinks.protection.outlook.com/?url=http:%2F%2Fcr.openjdk.java.net%2F~mbeckwit%2F8248660%2Fwebrev.01%2F&data=02%7C01%7Cmonica.beckwith%40microsoft.com%7C877aba35bffc49bc771b08d8439df0d8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637333692914177315&sdata=t7jYLFTBIMBatnkJdJY%2BQmISAozEHnZmXvytGiVvHsk%3D&reserved=0 
>>> JBS: https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.openjdk.java.net%2Fbrowse%2FJDK-8248660&data=02%7C01%7Cmonica.beckwith%40microsoft.com%7C877aba35bffc49bc771b08d8439df0d8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637333692914177315&sdata=bGLGYacKtU4GCm9zEjWqL8PyWtzzR1u%2FStCbxRhhRwc%3D&reserved=0   
> 
> +++ b/src/hotspot/cpu/aarch64/assembler_aarch64.hpp
> -      asm volatile ("nop");
> +      NOP();
> 
> This code seems to be the only user of the new NOP() macro. This [1] and another [2] place are the only occurrences of asm_bp. It looks like a debugging aid that is unlikely to be used by anyone now. Is it possible to remove asm_bp and the nop at all?
> 
> 
> And nitpiking,
> 
> --- a/src/hotspot/cpu/aarch64/icache_aarch64.hpp
> +++ b/src/hotspot/os_cpu/linux_aarch64/icache_linux_aarch64.hpp
> -    __builtin___clear_cache((char *)addr, (char *)(addr + 3));
> +    __builtin___clear_cache((char *)addr, (char *)(addr + 4));
> 
> an extra byte is invalidated, a typo?
> 
> Thanks,
> Anton
> 
> [1] https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhg.openjdk.java.net%2Fjdk%2Fjdk%2Ffile%2Fa51ce7f4ee54%2Fsrc%2Fhotspot%2Fcpu%2Faarch64%2Fassembler_aarch64.cpp%23l33&data=02%7C01%7Cmonica.beckwith%40microsoft.com%7C877aba35bffc49bc771b08d8439df0d8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637333692914177315&sdata=ozVwjDL5m9tzPvlOz%2FXomVbJeNAD8zyPCILyb5QR%2BwU%3D&reserved=0
> [2] https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhg.openjdk.java.net%2Fjdk%2Fjdk%2Ffile%2Fa51ce7f4ee54%2Fsrc%2Fhotspot%2Fcpu%2Faarch64%2Fassembler_aarch64.hpp%23l611&data=02%7C01%7Cmonica.beckwith%40microsoft.com%7C877aba35bffc49bc771b08d8439df0d8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637333692914177315&sdata=8%2BLXdyP2%2F5vf%2B8yG0ko4f6LkFvjdBosu%2BexeUk43q5A%3D&reserved=0
> 



More information about the aarch64-port-dev mailing list