Linux, Solaris and AMD64 support

Christian Thalinger Christian.Thalinger at Sun.COM
Mon Sep 14 08:20:48 PDT 2009


Hi!

My today's commits enable a couple of things that might help some people
here.

First, I updated to the newest bsd-port revision since Greg Lewis
commited some patches so that it's possible to build the bsd-port source
on Linux and Solaris without any patches.

The other commit adds AMD64 compiler support.  I did another JRuby
benchmark run today and the results look very good (on both 32 and
64-bit).  It seems John has fixed most problems.

Here is the current list of all benchmarks:

--- bench_assert.rb:                    failed on both

#  Internal Error
(/Users/twisti/mlvm/hotspot-amd64/src/share/vm/compiler/oopMap.cpp:425),
pid=82389, tid=2953318400
#  Error: assert(Universe::heap()->is_in_or_null(*loc),"found non oop
pointer")

--- bench_attr_reader.rb:               OK
--- bench_bigdecimal.rb:                OK
--- bench_chmod.rb:                     OK
--- bench_compiled_load.rb:             OK
--- bench_concat.rb                     OK
--- bench_constantize.rb                OK
--- bench_define_method_methods.rb      OK
--- bench_delegate.rb                   OK
--- bench_each_line.rb                  OK
--- bench_each_line_from_file.rb        OK
--- bench_enumerable.rb                 OK
--- bench_erb.rb                        OK
--- bench_erb_rendering.rb              OK
--- bench_erubis.rb:                    `require': no such file to load
-- rbench (LoadError)
--- bench_euler_hash_default.rb:        OK
--- bench_eval.rb:                      OK
--- bench_exceptions_stack_depth.rb:    OK
--- bench_fib_chained.rb:               OK
--- bench_fib_iterative.rb:             OK
--- bench_fib_recursive.rb:             OK
--- bench_fib_stack_depth.rb:           Segmentation fault
--- bench_file_writing.rb:              OK
--- bench_float_math.rb:                OK
--- bench_fractal.rb:                   OK
--- bench_full_startup.rb:              OK
--- bench_hash_each.rb:                 OK
--- bench_instance_eval.rb:             OK
--- bench_io_foreach.rb:                failed on both

#  Internal Error
(/Users/twisti/mlvm/hotspot-amd64/src/share/vm/code/nmethod.cpp:2017),
pid=82799, tid=4995690496
#  Error: guarantee(pd != __null,"pc descriptor must be present")


--- bench_io_gets.rb                    OK
--- bench_io_open.rb                    OK
--- bench_io_read.rb                    OK
--- bench_io_sysread.rb                 OK
--- bench_io_tcpsocket.rb               OK
--- bench_jruby_init.rb                 OK
--- bench_kind_of.rb                    OK
--- bench_lazy_method_triggers.rb       `require': no such file to load
-- rbench (LoadError)
--- bench_loop_versus_while.rb          32-bit OK, 64-bit failed

#  Internal Error
(/Users/twisti/mlvm/hotspot/src/share/vm/code/nmethod.cpp:2004),
pid=91087, tid=2953318400
#  Error: guarantee(pd != __null,"pc descriptor must be present")


--- bench_loops.rb                      OK
--- bench_marshal.rb                    OK
--- bench_method_missing.rb             OK
--- bench_method_to_proc.rb             OK
--- bench_nsieve.rb                     OK
--- bench_object_extend.rb              OK
--- bench_object_id.rb                  OK
--- bench_parser.rb                     OK
--- bench_proc_invocation.rb            OK
--- bench_process_times.rb              OK
--- bench_pythag.rb                     OK
--- bench_quicksort.rb                  OK
--- bench_rails_regexen.rb              OK
--- bench_rake_install.rb               undefined method `manage_gems'
for Gem:Module (NoMethodError)
--- bench_regex.rb                      OK
--- bench_regex_caching.rb              OK
--- bench_respond_to.rb                 OK
--- bench_rexml.rb                      failed on both

#  Internal Error
(/Users/twisti/mlvm/hotspot-amd64/src/share/vm/compiler/oopMap.cpp:425),
pid=83412, tid=4995690496
#  Error: assert(Universe::heap()->is_in_or_null(*loc),"found non oop
pointer")


--- bench_richards.rb                   OK
--- bench_sclass.rb                     OK
--- bench_send.rb                       OK
--- bench_singleton_dispatch.rb         OK
--- bench_stack_depth.rb                Segmentation fault
--- bench_stat.rb                       OK
--- bench_string_ops.rb                 OK
--- bench_string_pack.rb                OK
--- bench_string_scan.rb                OK
--- bench_stringio_puts.rb              OK
--- bench_stringio_write.rb             OK
--- bench_stringscanner.rb              OK
--- bench_strptime.rb                   32-bit failed, 64-bit OK

#  Internal Error
(/Users/twisti/mlvm/hotspot-amd64/src/share/vm/compiler/oopMap.cpp:425),
pid=85370, tid=2953318400
#  Error: assert(Universe::heap()->is_in_or_null(*loc),"found non oop
pointer")


--- bench_struct.rb                     OK
--- bench_symbol_to_proc.rb             OK
--- bench_symbol_to_s.rb                OK
--- bench_tak.rb                        OK
--- bench_tempfile.rb                   OK
--- bench_thread_creation.rb            OK
--- bench_threaded_reverse.rb 10        failed on both

#  Internal Error
(/Users/twisti/mlvm/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp:232),
pid=82215, tid=2953318400
#  Error: assert(last_sp < fp() && last_sp >= sp(),"bad tos")


--- bench_time.rb                       OK
--- bench_time_require.rb               `report_activate_error': Could
not find RubyGem activerecord (>= 0) (Gem::LoadError)
--- bench_timeout.rb                    32-bit OK, 64-bit failed

#  Internal Error
(/Users/twisti/mlvm/hotspot-amd64/src/cpu/x86/vm/frame_x86.inline.hpp:232),
pid=83697, tid=4995690496
#  Error: assert(last_sp < fp() && last_sp >= sp(),"bad tos")

--- bench_up_downto_times.rb            OK
--- bench_wide_finder.rb bench/o10k.ap  OK
--- bench_xml_builder.rb                `require': no such file to load
-- builder (LoadError)
--- bench_yaml.rb                       32-bit failed, 64-bit OK

#  Internal Error
(/Users/twisti/mlvm/hotspot-amd64/src/share/vm/compiler/oopMap.cpp:425),
pid=85549, tid=2953318400
#  Error: assert(Universe::heap()->is_in_or_null(*loc),"found non oop
pointer")

Some of the fails are intermittent and need a couple of runs to actually
trigger.

-- Christian


More information about the mlvm-dev mailing list