RFR(M) 8193373: Cleanup ElfFile and family

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Tue Feb 13 21:45:55 UTC 2018


I have a few minor comments, but am not really knowledgeable about this 
code.

http://cr.openjdk.java.net/~zgu/8193373/webrev.01/src/hotspot/os/linux/decoder_linux.cpp.udiff.html

+ // AARCH64 defaults to noexecstack. All others default to execstack.
+#ifdef AARCH64
+ bool result = true;
+#else
+ bool result = false;
+#endif

Can you write as a more compact:

+ // AARCH64 defaults to noexecstack. All others default to execstack.
+ bool result = AARCH64_ONLY(true) NOT_AARCH64(false);

http://cr.openjdk.java.net/~zgu/8193373/webrev.01/src/hotspot/share/prims/whitebox.cpp.udiff.html

+ ElfFile::_donnot_cache_elf_section = true;


Can you add an underscore _do_not_cache_elf_section ?

http://cr.openjdk.java.net/~zgu/8193373/webrev.01/test/hotspot/jtreg/runtime/8193373/TestElfDirectRead.java.html

Can you make the directory name something like: ElfDecoder rather than 
the bugid number?

Did you test this against some hs_err_pid files?  I don't need to see 
another review with these changes and I can sponsor this for you.

thanks,
Coleen
On 2/12/18 9:44 PM, Zhengyu Gu wrote:
> Hi Yumin,
>
> I made change according to your comment. Also, added a test.
>
> Webrev: http://cr.openjdk.java.net/~zgu/8193373/webrev.01/index.html
>
> Test:
>   Reran hotspot_runtime tests on Linux 64 (fastdebug and release)
>
> Thanks,
>
> -Zhengyu
>
>
>
> On 02/08/2018 12:51 PM, yumin qi wrote:
>> Hi, Zhengyu
>>
>>    Looks good to me. One minor comment:
>>
>> +bool ElfFile::specifies_noexecstack(const char* filepath) {
>> + // Returns true if the elf file is marked NOT to require an 
>> executable stack,
>> + // or if the file could not be opened.
>> + // Returns false if the elf file requires an executable stack, the 
>> stack flag
>> + // is not set at all, or if the file can not be read.
>>
>>
>>    should the comments in side the function be moved above the function?
>>
>>     others looks OK to me.
>>
>> Thanks
>> Yumin
>>
>>
>>
>>
>> On Mon, Feb 5, 2018 at 8:08 AM, Zhengyu Gu <zgu at redhat.com 
>> <mailto:zgu at redhat.com>> wrote:
>>
>>     Please review this cleanup and refactoring of elf decoder.
>>
>>     * Fixed coding styles.
>>        - Moved non-static members to the top of classes
>>        - Fixed variable names (from Windows naming style to hotspot 
>> style)
>>
>>     * Moved Linux implementation of ElfFile::specifies_noexecstack to os
>>        directory
>>
>>     * Refactored section cache logic into common ElfSection class.
>>
>>     * Added utility classes FileReader and MarkedFileReader to cleanup
>>        duplicated code.
>>
>>     * Deleted section header string table once initialization is 
>> completed,
>>        cause it is not used for decoding.
>>
>>     * When decoder failed to cache section data, current implementation
>>        tries to fallback to read data from file directly. This never
>>        worked, cause it put decoder into out of memory state when it 
>> failed
>>        load section data, so decoder always bailed out prematurely.
>>        This patch also fixed this bug.
>>
>>     Bug: https://bugs.openjdk.java.net/browse/JDK-8193373
>>     <https://bugs.openjdk.java.net/browse/JDK-8193373>
>>     Webrev: http://cr.openjdk.java.net/~zgu/8193373/webrev.00/
>>     <http://cr.openjdk.java.net/~zgu/8193373/webrev.00/>
>>
>>
>>     Test:
>>
>>        hotspot_runtime on Linux 64 (fastdebug and release)
>>
>>     Thanks,
>>
>>     -Zhengyu
>>
>>



More information about the hotspot-runtime-dev mailing list