Ticket #2064 (new enhancement)

Opened 2 years ago

Last modified 5 months ago

libMicro port

Reported by: kaoutsis Owned by: nobody
Priority: normal Milestone: R1
Component: - General Version:
Keywords: 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 Download (57.5 KB) - added by kaoutsis 2 years ago.
libMicro-0.4.0-orig-mod.diff Download (27.0 KB) - added by kaoutsis 2 years ago.
bench-modified Download (17.0 KB) - added by kaoutsis 2 years ago.
other-tmp-results Download (340.1 KB) - added by kaoutsis 2 years ago.
haiku-tmp-results Download (329.5 KB) - added by kaoutsis 2 years ago.
adding-mmap-munmap-libmicro-tests.diff Download (0.7 KB) - added by kaoutsis 2 years ago.
src_tests_system_benchmarks_libMicro_Jamfile.diff Download (0.7 KB) - added by kaoutsis 23 months ago.
src_tests_system_benchmarks_libMicro.diff Download (0.8 KB) - added by kaoutsis 22 months ago.

Change History

  Changed 2 years 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 2 years ago by kaoutsis

using haiku's flock()

  Changed 2 years ago by kaoutsis

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

follow-up: ↓ 5   Changed 2 years 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 2 years ago by kaoutsis

Replying to kaoutsis:

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

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

  Changed 2 years 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 2 years ago by kaoutsis

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

Changed 2 years ago by kaoutsis

Changed 2 years ago by kaoutsis

in reply to: ↑ 7 ; follow-up: ↓ 9   Changed 2 years 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 2 years 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 2 years ago by kaoutsis

Changed 2 years ago by kaoutsis

Changed 2 years ago by kaoutsis

Changed 2 years ago by kaoutsis

  Changed 2 years 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 2 years 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 23 months ago by kaoutsis

follow-up: ↓ 13   Changed 23 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 23 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 22 months ago by kaoutsis

  Changed 22 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.

follow-up: ↓ 16   Changed 16 months ago by scottmc

Can this be closed?

in reply to: ↑ 15   Changed 16 months ago by kaoutsis

Replying to scottmc:

Can this be closed?

i believe not, as long the bench script fails. I am not sure if it still fails; i will test it as soon as i find some time.

  Changed 5 months ago by axeld

  • owner changed from axeld to nobody
  • version R1/pre-alpha1 deleted
Note: See TracTickets for help on using tickets.