-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize the code flow of dynamic loading #13579
Conversation
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested OK with OSTest on rv-virt:knsh, rv-virt:knsh64 and milkv_duos:nsh. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please add commit messages which describe the change
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
test with rv-virt:knsh
|
test with rv64 knsh ostest
|
@lupyuen hello, The above is my result based on pr |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Milk-V Duo S (SG2000) shows this Segmentation Fault. Would you know what causes this? https://gist.github.com/lupyuen/fa0e948653cb47bfeca1c0eb99553881
user_main: nested signal handler test
signest_test: Starting signal waiter task at priority 101
waiter_main: Waiter started
signest_test: Started waiter_main pid=52
waiter_main: Setting signal mask
signest_test: Starting interfering task at priority 102
waiter_main: Registering signal hanriscv_exception: EXCEPTION: Instruction page fault. MCAUSE: 000000000000000c, EPC: 0000000000000000, MTVAL: 0000000000000000
riscv_exception: Segmentation fault in PID 53: ostest
dler
interfere_main: Waiting on semaphore
waiter_main: Waiting on semaphore
signest_test: Started interfere_main pid=53
ostest_main: Exiting with status 0
rv-virt:knsh64 seems to be failing intermittently. Do you see the same problem when you restart QEMU and retest knsh64 a few times? https://gist.github.com/lupyuen/429d215b859f8d90d66dfac37b45fce2
|
Earlier we had issues with Stress Testing of knsh64. Maybe you could rebase your repo to this version? #13585 |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
@anjiahao1 FYI the latest version still fails with Segmentation Fault on rv-virt:knsh64: https://gist.github.com/lupyuen/00e02d38e966eee1e3e68b97ca03d4cc
|
I think this may not be caused by my PR. Is there a problem with the latest code? My code is not the latest, and running rv64:knsh test is passable |
@anjiahao1 Sorry I can't approve this PR if rv-virt:knsh64 is failing the Regression Test. May I suggest that we wait for the following 2 issues to be resolved? Then we can rebase and retest the PR. Thanks!
|
Yes, I think so too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just some minor comments
@lupyuen The latest code, without using the commit in my PR, will crash when using ostest |
Yep please wait for #13585 to be merged. Then we'll rebase and retest your PR. Thanks! |
OK,Thanks |
Hi @anjiahao1 #13585 has been merged. Could you please rebase to master branch, and retest your PR? Thanks! |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
@anjiahao1 please report your result. |
…Relocate object The feature depends on ARCH_USE_SEPARATED_SECTION the different memory area has different access speed and cache capability, so the arch can custom allocate them based on section names to achieve performance optimization test: sim:elf sim:sotest Signed-off-by: dongjiuzhu1 <[email protected]>
Signed-off-by: dongjiuzhu1 <[email protected]>
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
@lupyuen |
Signed-off-by: anjiahao <[email protected]>
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
@anjiahao1 Would you know why Milk-V Duo S is failing this assertion?
Update: I can't reproduce this assertion failure. I think we can ignore this for now. Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested OK with OSTest on rv-virt:knsh, rv-virt:knsh64 and milkv_duos:nsh.
Stress Test for rv-virt:knsh64 (reboot qemu + restart ostest) succeeded all 200 times. Thanks!
|
yes, but since this patch already pass ci several time, we can ignore this error and merge it directly. |
Summary
Optimize the code flow of dynamic loading
dl
andmod
Impact
Dynamic loading
Testing
sim and qemu