Ticket #2064 (new enhancement)

Opened 5 months ago

Last modified 3 months ago

libMicro port

Reported by: kaoutsis Owned by: axeld
Priority: normal Milestone: R1
Component: - General Version: R1 development
Cc: Blocked By:
Platform: All Blocking:

Description

The LibMicro is a portable set of microbenchmarks to measure the performance of various system and library calls.

http://www.opensolaris.org/os/project/libmicro/

attached: * libMicro-build.diff.zip the incorporation of the libMicro to the build

* libMicro-0.4.0-orig-mod.diff libMicro diff original to modifications

Attachments

libMicro-build.diff.zip (57.5 kB) - added by kaoutsis 5 months ago.
libMicro-0.4.0-orig-mod.diff (27.0 kB) - added by kaoutsis 5 months ago.
bench-modified (17.0 kB) - added by kaoutsis 5 months ago.
other-tmp-results (340.1 kB) - added by kaoutsis 5 months ago.
haiku-tmp-results (329.5 kB) - added by kaoutsis 5 months ago.
adding-mmap-munmap-libmicro-tests.diff (0.7 kB) - added by kaoutsis 5 months ago.
src_tests_system_benchmarks_libMicro_Jamfile.diff (0.7 kB) - added by kaoutsis 4 months ago.
src_tests_system_benchmarks_libMicro.diff (0.8 kB) - added by kaoutsis 3 months ago.

Change History

  Changed 5 months ago by kaoutsis

Removed additional macro getpagesize() from pread.c and read.c; now it uses haiku's getpagesize(), updated the two attached files.

  Changed 5 months ago by kaoutsis

using haiku's flock()

  Changed 5 months ago by kaoutsis

libMicro/connection.c Haiku is supporting now #include <sys/poll.h> Reverted file to its original state.

follow-up: ↓ 5   Changed 5 months ago by kaoutsis

Hopefully, fixed the failed 'jam -q' from inside the libMicro dir, that i noticed yesterday night on haiku-host (still untested).

in reply to: ↑ 4   Changed 5 months ago by kaoutsis

Replying to kaoutsis:

Hopefully, fixed the failed 'jam -q' ...

it's fixed, but still, not an elegant solution.

  Changed 5 months ago by kaoutsis

reduced further the number of changes to the original sources: * the 'bench' script wants to find the tattle executable in a bin subdirectory, so it is copied now to the bin-BePC, and a symlink 'bin' points to bin-BePC is created by HaikuImage * reverted libMicro/tattle.c to its original state by adding to libMicro/Jamfile: UseHeaders [ FDirName $(SUBDIR) ] : true ; so #include <tattle.h> now is allowed. * don't mix the getpeername stand alone net test with the synonym of libMicro test by making the rules more clear in libMicro/Jamfile and to HaikuImage respectively.

follow-up: ↓ 8   Changed 5 months ago by kaoutsis

Using haiku's mmap() and munmap() from r24964 the tests failed with barrier_create(): Invalid Argument

Changed 5 months ago by kaoutsis

Changed 5 months ago by kaoutsis

in reply to: ↑ 7 ; follow-up: ↓ 9   Changed 5 months ago by bonefish

Replying to kaoutsis:

Using haiku's mmap() and munmap() from r24964 the tests failed with barrier_create(): Invalid Argument

Fixed in r24967.

BTW, do you want it to be checked in or do you rather want to work on it some more first?

in reply to: ↑ 8   Changed 5 months ago by kaoutsis

Replying to bonefish:

Replying to kaoutsis:

Using haiku's mmap() and munmap() from r24964 the tests failed with barrier_create(): Invalid Argument

Fixed in r24967.

Indeed :-)

BTW, do you want it to be checked in or do you rather want to work on it some more first?

I think it's better to be checked in. Trac is not svn :-) For other issues (pthreads etc) we can open separate tickets, if there is a need. Definitely, you made a very good job, thanks!

Changed 5 months ago by kaoutsis

Changed 5 months ago by kaoutsis

Changed 5 months ago by kaoutsis

Changed 5 months ago by kaoutsis

  Changed 5 months ago by kaoutsis

* Added the adding-mmap-munmap-libmicro-tests.diff in order to made the mmap() and munmap() tests actually run. * Updated haiku-tmp-results with the newly included tests

  Changed 5 months ago by kaoutsis

r25003, after the pthread_cleanup_pop_handler fix, a lot of tests that were entered the gdb (for that reason), now run correctly but sometimes looks like they wait for ever (no cpu activity). Others just waits for ever,

One group of these tests, most of the times runs correct and sometimes waits, with no activity. An interesting example is (try to run by hand): go to ~/benchmarks/libmicro/bin> export OPTS="-1 -E -C 200 -L -S -W" malloc $OPTS -N "mallocT2_1k" -s 1k -g 10 -T 2 -I 200

Once every 40 or 30 times, doesn't return, waits for ever (no cpu activity)

The other group of tests, for example mktime $OPTS -N "mktimeT2" -T 2 -I 1000 waits for ever, every time it runs.

Also, it's the first time, that the tests are working without the -1 option (namely the default, OPTS="-E -C 200 -L -S -W") but also there are the above problems. HTH :-)

BTW: should i open different tickets for every issue, or should i post here?

Changed 4 months ago by kaoutsis

follow-up: ↓ 13   Changed 4 months ago by kaoutsis

src_tests_system_benchmarks_libMicro_Jamfile.diff: * Allow the mutex and the pthread_create libMicro benchmarks run for real.

in reply to: ↑ 12   Changed 4 months ago by korli

Replying to kaoutsis:

src_tests_system_benchmarks_libMicro_Jamfile.diff: * Allow the mutex and the pthread_create libMicro benchmarks run for real.

Applied in r25460.

Changed 3 months ago by kaoutsis

  Changed 3 months ago by kaoutsis

src_tests_system_benchmarks_libMicro.diff: * Allow the msync libMicro benchmark to compile for real * Added a plain test for msync to the bench script, since the original bench script didn't have one.

Note: See TracTickets for help on using tickets.