Edit harness/cases/16.t libaio.spec src/libaio.h src/syscall.h Add support for LoongArch
Did you test this? Please post the output from 'make partcheck' on this new architecture.
Hello, The log of "make partcheck" has been sent to the mailbox of "linux-aio@kvack.org", please check it carefully, thank you!
Hello, "linux-aio@kvack.org" email failed to send, please provide your email address, I will send you the log of "make partcheck", thank you!
yehui ren pagure@pagure.io writes:
renyehui commented on the pull-request: Add support for LoongArch that you are following: Hello, "linux-aio@kvack.org" email failed to send, please provide your email address, I will send you the log of "make partcheck", thank you! To reply, visit the link below or just reply to this email https://pagure.io/libaio/pull-request/14 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You can use the above link, or use the web interface to add a comment or modify the pull request.
renyehui commented on the pull-request: Add support for LoongArch that you are following: Hello, "linux-aio@kvack.org" email failed to send, please provide your email address, I will send you the log of "make partcheck", thank you!
Add support for LoongArch
To reply, visit the link below or just reply to this email https://pagure.io/libaio/pull-request/14 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You can use the above link, or use the web interface to add a comment or modify the pull request.
Thanks, Jeff
Hello, the log of'make partcheck' is as follows: make[1]: 进入目录“/home/uos/pagure/libaio/src” cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_init.ol io_queue_init.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_release.ol io_queue_release.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_wait.ol io_queue_wait.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_run.ol io_queue_run.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_getevents.ol io_getevents.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_submit.ol io_submit.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_cancel.ol io_cancel.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_setup.ol io_setup.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_destroy.ol io_destroy.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_pgetevents.ol io_pgetevents.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o raw_syscall.ol raw_syscall.c cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o compat-0_1.ol compat-0_1.c rm -f libaio.a ar r libaio.a io_queue_init.ol io_queue_release.ol io_queue_wait.ol io_queue_run.ol io_getevents.ol io_submit.ol io_cancel.ol io_setup.ol io_destroy.ol io_pgetevents.ol raw_syscall.ol compat-0_1.ol ranlib libaio.a cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_init.os io_queue_init.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_release.os io_queue_release.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_wait.os io_queue_wait.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_run.os io_queue_run.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_getevents.os io_getevents.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_submit.os io_submit.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_cancel.os io_cancel.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_setup.os io_setup.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_destroy.os io_destroy.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_pgetevents.os io_pgetevents.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o raw_syscall.os raw_syscall.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o compat-0_1.os compat-0_1.c cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -Wl,--version-script=libaio.map -Wl,-soname=libaio.so.1 -o libaio.so.1.0.1 io_queue_init.os io_queue_release.os io_queue_wait.os io_queue_run.os io_getevents.os io_submit.os io_cancel.os io_setup.os io_destroy.os io_pgetevents.os raw_syscall.os compat-0_1.os make[1]: 离开目录“/home/uos/pagure/libaio/src” make[1]: 进入目录“/home/uos/pagure/libaio/harness” cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/2.t\" -o cases/2.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -Wno-stringop-overflow -DTEST_NAME=\"cases/3.t\" -o cases/3.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/4.t\" -o cases/4.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/5.t\" -o cases/5.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/6.t\" -o cases/6.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/7.t\" -o cases/7.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/11.t\" -o cases/11.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/12.t\" -o cases/12.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/13.t\" -o cases/13.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/14.t\" -o cases/14.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/15.t\" -o cases/15.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/16.t\" -o cases/16.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/17.t\" -o cases/17.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/18.t\" -o cases/18.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/19.t\" -o cases/19.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/20.t\" -o cases/20.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/21.t\" -o cases/21.p main.c ../src/libaio.a -lpthread cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/22.t\" -o cases/22.p main.c ../src/libaio.a -lpthread mkdir testdir rm -f testdir/rofile echo "test" >testdir/rofile chmod 400 testdir/rofile rm -f testdir/rwfile echo "test" >testdir/rwfile chmod 600 testdir/rwfile rm -f testdir/wofile echo "test" >testdir/wofile chmod 200 testdir/wofile ./runtests.sh cases/2.p cases/3.p cases/4.p cases/5.p cases/6.p cases/7.p cases/11.p cases/12.p cases/13.p cases/14.p cases/15.p cases/16.p cases/17.p cases/18.p cases/19.p cases/20.p cases/21.p cases/22.p Test run starting at 2021年 06月 11日 星期五 13:32:46 CST Starting cases/2.p expect -14: io_setup(-1000, 0xffffffff81000000) = -14 [Bad address] expect -14: io_setup( 1000, 0xffffffff81000000) = -14 [Bad address] expect -14: io_setup( 0, 0xffffffff81000000) = -14 [Bad address] expect -22: io_setup(-1000, 0xfffba945a8) = -22 [Invalid argument] expect -22: io_setup( -1, 0xfffba945a8) = -22 [Invalid argument] expect -22: io_setup( 0, 0xfffba945a8) = -22 [Invalid argument] expect 0: io_setup( 1, 0xfffba945a8) = 0 [Success] expect -22: io_setup( 1, 0xfffba945a8) = -22 [Invalid argument] test cases/2.t completed PASSED. Completed cases/2.p with 0. Starting cases/3.p expect -22: io_submit(0xffffffffffffffff, 1, 0xfffbf4e8c0) = -22 [Invalid argument] expect 0: io_submit(0xfff73a8000, 0, 0xfffbf4e8c0) = 0 [Success] expect -14: io_submit(0xfff73a8000, 1, (nil)) = -14 [Bad address] expect -14: io_submit(0xfff73a8000, 1, 0xffffffffffffffff) = -14 [Bad address] expect -14: io_submit(0xfff73a8000, 2, 0xfffbf4e8d0) = -14 [Bad address] expect -14: io_submit(0xfff73a8000, 2, 0xfffbf4e8e0) = -14 [Bad address] expect -22: io_submit(0xfff73a8000, -1, 0xfffbf4e8c0) = -22 [Invalid argument] test cases/3.t completed PASSED. Completed cases/3.p with 0. Starting cases/4.p expect -9: (w), res = sync_submit: io_submit res=-9 [Bad file descriptor] -9 [Bad file descriptor] expect -9: (r), res = sync_submit: io_submit res=-9 [Bad file descriptor] -9 [Bad file descriptor] expect 512: (w), res = 512 [Success] expect 512: (r), res = 512 [Success] expect -22: (r), res = sync_submit: io_submit res=-22 [Invalid argument] -22 [Invalid argument] expect -22: (w), res = sync_submit: io_submit res=-22 [Invalid argument] -22 [Invalid argument] expect 0: (r), res = 0 [Success] expect 4: (w), res = 4 [Success] expect 4: (w), res = 4 [Success] expect 8: (r), res = 8 [Success] read after append: [12345678] expect -14: (r), res = sync_submit: io_submit res=-14 [Bad address] -14 [Bad address] expect -14: (w), res = sync_submit: io_submit res=-14 [Bad address] -14 [Bad address] expect -14: (w), res = -14 [Bad address] test cases/4.t completed PASSED. Completed cases/4.p with 0. Starting cases/5.p expect 512: (w), res = 512 [Success] expect 512: (r), res = 512 [Success] expect 512: (r), res = 512 [Success] expect 512: (w), res = 512 [Success] expect 512: (w), res = 512 [Success] expect -14: (r), res = -14 [Bad address] expect 512: (r), res = 512 [Success] expect -14: (w), res = -14 [Bad address] test cases/5.t completed PASSED. Completed cases/5.p with 0. Starting cases/6.p size = 8198112 expect 805306368: (w), res = 805306368 [Success] expect 805306368: (r), res = 805306368 [Success] test cases/6.t completed PASSED. Completed cases/6.p with 0. Starting cases/7.p expect 512: (w), res = 512 [Success] expect 512: (r), res = 512 [Success] expect 511: (w), res = 511 [Success] expect 511: (r), res = 511 [SuCompleted cases/7.p with 0. Starting cases/11.p completed 1000000 out of 1000000 writes completed 1000000 out of 1000000 reads test cases/11.t completed PASSED. Completed cases/11.p with 0. Starting cases/12.p expect 0: io_submit(0xfff51a4000, 0, (nil)) = 0 [Success] expect -22: io_submit(0xfff51a4000, 0, (nil)) = -22 [Invalid argument] child exited with status 0 test cases/12.t completed PASSED. Completed cases/12.p with 0. Starting cases/13.p expect 8: io_submit(0xfff641c000, 8, 0xfffbe41fc0) = 8 [] event[0]: write[0] okay, returned: 1048576 [okay] event[1]: write[1] okay, returned: 1048576 [okay] event[2]: write[2] okay, returned: 1048576 [okay] event[3]: write[3] okay, returned: 1048576 [okay] event[4]: write[4] okay, returned: 1048576 [okay] event[5]: write[5] okay, returned: 1048576 [okay] event[6]: write[6] okay, returned: 1048576 [okay] event[7]: write[7] okay, returned: 1048576 [okay] test cases/13.t completed PASSED. Completed cases/13.p with 0. Starting cases/14.p expect 0: io_submit(0xfff6d00000, 0, (nil)) = 0 [Success] child exited with status 0 test cases/14.t completed PASSED. Completed cases/14.p with 0. Starting cases/15.p expect 5120: (>), res = 5120 [Success] Checking memory: [Success] expect 5120: (<), res = 5120 [Success] expect 4608: (>), res = 4608 [Success] Checking memory: [Success] expect 4608: (<), res = 4608 [Success] Checking memory: [Success] test cases/15.t completed PASSED. Completed cases/15.p with 0. Starting cases/16.p eventfd write test [SUCCESS] eventfd read test [SUCCESS] test cases/16.t completed PASSED. Completed cases/16.p with 0. Starting cases/17.p aio ring size: 511 MAX_IOS: 510, IO_GETEVENTS Submitting: 510 Submitted: 496 Submitting: 14 Submitted too much, that's okay Completed: 496 Submitting: 14 Submitted: 14 Completed: 14 Verifying... OK MAX_IOS: 511, IO_GETEVENTS Submitting: 511 Submitted: 496 Submitting: 15 Submitted too much, that's okay Completed: 496 Submitting: 15 Submitted: 15 Completed: 15 Verifying... OK MAX_IOS: 512, IO_GETEVENTS Submitting: 512 Submitted: 496 Submitting: 16 Submitted too much, that's okay Completed: 496 Submitting: 16 Submitted: 16 Completed: 16 Verifying... OK MAX_IOS: 1022, IO_GETEVENTS Submitting: 1022 Submitted: 496 Submitting: 526 Submitted too much, that's okay Completed: 496 Submitting: 526 Submitted: 496 Submitting: 30 Submitted too much, that's okay Completed: 496 Submitting: 30 Submitted: 30 Completed: 30 Verifying... OK MAX_IOS: 2044, IO_GETEVENTS Submitting: 2044 Submitted: 496 Submitting: 1548 Submitted too much, that's okay Completed: 496 Submitting: 1548 Submitted: 496 Submitting: 1052 Submitted too much, that's okay Completed: 496 Submitting: 1052 Submitted: 496 Submitting: 556 Submitted too much, that's okay Completed: 496 Submitting: 556 Submitted: 496 Submitting: 60 Submitted too much, that's okay Completed: 496 Submitting: 60 Submitted: 60 Completed: 60 Verifying... OK MAX_IOS: 510, USER_GETEVENTS Submitting: 510 Submitted: 496 Submitting: 14 Submitted too much, that's okay Completed: 496 Submitting: 14 Submitted: 14 Completed: 14 Verifying... OK MAX_IOS: 511, USER_GETEVENTS Submitting: 511 Submitted: 496 Submitting: 15 Submitted too much, that's okay Completed: 496 Submitting: 15 Submitted: 15 Completed: 15 Verifying... OK MAX_IOS: 512, USER_GETEVENTS Submitting: 512 Submitted: 496 Submitting: 16 Submitted too much, that's okay Completed: 496 Submitting: 16 Submitted: 16 Completed: 16 Verifying... OK MAX_IOS: 1022, USER_GETEVENTS Submitting: 1022 Submitted: 496 Submitting: 526 Submitted too much, that's okay Completed: 496 Submitting: 526 Submitted: 496 Submitting: 30 Submitted too much, that's okay Completed: 496 Submitting: 30 Submitted: 30 Completed: 30 Verifying... OK MAX_IOS: 2044, USER_GETEVENTS Submitting: 2044 Submitted: 496 Submitting: 1548 Submitted too much, that's okay Completed: 496 Submitting: 1548 Submitted: 496 Submitting: 1052 Submitted too much, that's okay Completed: 496 Submitting: 1052 Submitted: 496 Submitting: 556 Submitted too much, that's okay Completed: 496 Submitting: 556 Submitted: 496 Submitting: 60 Submitted too much, that's okay Completed: 496 Submitting: 60 Submitted: 60 Completed: 60 Verifying... OK test cases/17.t completed PASSED. Completed cases/17.p with 0. Starting cases/18.p test cases/18.t completed PASSED. Completed cases/18.p with 0. Starting cases/19.p test cases/19.t completed PASSED. Completed cases/19.p with 0. Starting cases/20.p aio_max_nr: 65536 Creating 65536 ioctx-s with 1 events each... Successfully created 65511 io_context-s Last io_setup call returned -12 (Cannot allocate memory) Creating 32768 ioctx-s with 2 events each... Successfully created 32768 io_context-s Creating 16384 ioctx-s with 4 events each... Successfully created 16384 io_context-s Creating 8192 ioctx-s with 8 events each... Successfully created 8192 io_context-s Creating 4096 ioctx-s with 16 events each... Successfully created 4096 io_context-s Creating 2048 ioctx-s with 32 events each... Successfully created 2048 io_context-s Creating 1024 ioctx-s with 64 events each... Successfully created 1024 io_context-s Creating 512 ioctx-s with 128 events each... Successfully created 512 io_context-s Creating 256 ioctx-s with 256 events each... Successfully created 256 io_context-s Creating 128 ioctx-s with 512 events each... Successfully created 128 io_context-s Creating 64 ioctx-s with 1024 events each... Successfully created 64 io_context-s Creating 32 ioctx-s with 2048 events each... Successfully created 32 io_context-s Creating 16 ioctx-s with 4096 events each... Successfully created 16 io_context-s Creating 8 ioctx-s with 8192 events each... Successfully created 8 io_context-s Creating 4 ioctx-s with 16384 events each... Successfully created 4 io_context-s Creating 2 ioctx-s with 32768 events each... Successfully created 2 io_context-s Creating 1 ioctx-s with 65536 events each... Successfully created 1 io_context-s test cases/20.t completed PASSED. Completed cases/20.p with 0. Starting cases/21.p test cases/21.t completed PASSED. Completed cases/21.p with 0. Starting cases/22.p test cases/22.t completed PASSED. Completed cases/22.p with 0. Pass: 18 Fail: 0 Skip: 0 Test run complete at 2021年 06月 11日 星期五 13:33:43 CST make[1]: 离开目录“/home/uos/pagure/libaio/harness”
Hello, please help review, thank you!
Sorry to interrupt, please check whether the log meets the requirements and whether the source code modification can be merged, thank you!
Hello, please take the time to help with the review, thank you very much!
Sorry for the delay. The test results look good, but could you confirm that the test harness was run on a LoongArch system? Unfortunately, it's not clear from the test harness output what architecture was being tested.
Thanks! Jeff
Hello, the following is my operation, can you prove that it was done on the "loongarch" system:
uos@LA-35-P5:~/pagure/libaio.new$ ls ChangeLog COPYING harness INSTALL libaio libaio.spec Makefile man README.md src TODO usr uos@LA-35-P5:~/pagure/libaio.new$ cd usr/ uos@LA-35-P5:~/pagure/libaio.new/usr$ ls include lib uos@LA-35-P5:~/pagure/libaio.new/usr$ cd lib/ uos@LA-35-P5:~/pagure/libaio.new/usr/lib$ ls libaio.a libaio.so libaio.so.1 libaio.so.1.0.1 uos@LA-35-P5:~/pagure/libaio.new/usr/lib$ readelf -h libaio.so ELF 头: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 类别: ELF64 数据: 2 补码,小端序 (little endian) 版本: 1 (current) OS/ABI: UNIX - System V ABI 版本: 0 类型: DYN (共享目标文件) 系统架构: Loongarch 版本: 0x1 入口点地址: 0x8f0 程序头起点: 64 (bytes into file) Start of section headers: 45704 (bytes into file) 标志: 0x3, LP64 本头的大小: 64 (字节) 程序头大小: 56 (字节) Number of program headers: 6 节头大小: 64 (字节) 节头数量: 33 字符串表索引节头: 32
Thank you !
Hello, can you please check if the information I provided can be proved, thank you!
The changes look good. The commit messages should have more descriptive subjects. For example, this is what git log --oneline looks like for your commits:
27be155 Update src/syscall.h 57ac7d8 Update src/libaio.h 2671848 Update libaio.spec c2cee4d Update harness/cases/16.t
Please change them to something like this:
Use generic syscall number schema for loongarch Add endian detection and bit width detection for loongarch Add loongarch to supported architectures in libaio.spec cases/16.t: loongarch only supports eventfd2
And please add your Developer Certificate of Origin (Signed-off-by) to each commit.
Once that's done, I'll go ahead and merge the changes. Thanks a lot for working on this!
Hello, I previously modified the source code online, and then submitted a merge request. I tried to modify the description information online, but it was unsuccessful. I would like to ask you how to modify the description information? Thank you!
renyehui commented on the pull-request: Add support for LoongArch that you are following: Hello, I previously modified the source code online, and then submitted a merge request. I tried to modify the description information online, but it was unsuccessful. I would like to ask you how to modify the description information? Thank you!
https://docs.pagure.org/pagure/usage/pull_requests.html#updating-your-pull-request
Let me know if that helps. In your case, you will have to force push your updates, since you are replacing the commits in your pull request with new ones.
If you can't figure out how to update your existing pull request, you can close it and create a new one.
I hope this doesn't cuase you too much trouble. Thanks again for working on this support.
Cheers, Jeff
Pull-Request has been closed by renyehui
Hello, please check my new submission: https://pagure.io/libaio/pull-request/15, please review again, thank you!
Edit
harness/cases/16.t
libaio.spec
src/libaio.h
src/syscall.h
Add support for LoongArch