Re: [m5-dev] [PATCH 00 of 41] Ruby Config Updated Patches
Thanks for getting these patches out, Brad. On Thu, Jan 14, 2010 at 10:19 PM, Brad Beckmann brad.beckm...@amd.com wrote: - These patches do not remove the old ruby config and rubymem files. However, once these patches are checked in, those old files won't be needed. Anyone have an opinion on how long they would like those files to stick around? I would like to delete them as soon as we can. I think these files should be deleted as soon as they are no longer needed... i.e., go back in the patch queue to the patch where we stop needing them to compile and run and do the 'hg rm' as part of that patch. I didn't do that sooner since it's a little more convenient to just look at the file than to go back in the hg history, but now that we have all these patches finished, there's no need to keep them around, and no point in having patches to delete them that are separate from the changeset where we logically stopped needing them. - There are a few places where the block offset (i.e. the l2_select_low_bit) is defaulted to 6 assuming 64-byte cache blocks. I would like to instead take the log2 of RubySystem's block_size_bytes parameter, however the following code will not work: l2_select_low_bit = Param.Int(math.log((Param.RubySystem(Parent.any, block offset)).block_size_bytes, 2), ) I would be interested to hear any suggestions people have to make something like this work. Unless there's ever a reason why a user would want to set this low bit to something other than the log2 of the block size, then this value should just be calculated in C++, in my opinion. The reason it doesn't work is because math operations on proxy values have to be explicitly supported in the proxy code, and log isn't one that we support. (Actually I'm not sure it's possible to support function calls on proxies, just operators.) In theory we could add support for exp or log on proxies (if we defined an operator) but it would be easier to move it to C++ unless there's a real need here. Steve ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] [PATCH 00 of 41] Ruby Config Updated Patches
- These patches do not remove the old ruby config and rubymem files. However, once these patches are checked in, those old files won't be needed. Anyone have an opinion on how long they would like those files to stick around? I would like to delete them as soon as we can. Why not delete them now? - There are a few places where the block offset (i.e. the l2_select_low_bit) is defaulted to 6 assuming 64-byte cache blocks. I would like to instead take the log2 of RubySystem's block_size_bytes parameter, however the following code will not work: l2_select_low_bit = Param.Int(math.log((Param.RubySystem(Parent.any, block offset)).block_size_bytes, 2), ) I would be interested to hear any suggestions people have to make something like this work. Param.foo is not a value, so you can't do stuff like this to it. Parent.any is a proxy class and we've defined some mathematical operations for it. We could consider defining others. Alternatively, we could try to support some sort of method invocation as a value. Nate ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] [PATCH 00 of 41] Ruby Config Updated Patches
Unless there's ever a reason why a user would want to set this low bit to something other than the log2 of the block size, then this value should just be calculated in C++, in my opinion. I would agree with this. The reason it doesn't work is because math operations on proxy values have to be explicitly supported in the proxy code, and log isn't one that we support. (Actually I'm not sure it's possible to support function calls on proxies, just operators.) In theory we could add support for exp or log on proxies (if we defined an operator) but it would be easier to move it to C++ unless there's a real need here. Yep. Nate ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] [PATCH 00 of 41] Ruby Config Updated Patches
I failed to mention earlier that the parameter is used in the protocol files so it isn't just simple C++. However, it is simple enough to make SLICC generate the correct C++ since RubySystem has static functions that provide the block size bits. Once these functions are no longer static, the SLICC solution is a little more complicated, but I got something in mind that should work. Consider the problem resolved. Brad -Original Message- From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On Behalf Of nathan binkert Sent: Friday, January 15, 2010 11:53 AM To: M5 Developer List Subject: Re: [m5-dev] [PATCH 00 of 41] Ruby Config Updated Patches Unless there's ever a reason why a user would want to set this low bit to something other than the log2 of the block size, then this value should just be calculated in C++, in my opinion. I would agree with this. The reason it doesn't work is because math operations on proxy values have to be explicitly supported in the proxy code, and log isn't one that we support. (Actually I'm not sure it's possible to support function calls on proxies, just operators.) In theory we could add support for exp or log on proxies (if we defined an operator) but it would be easier to move it to C++ unless there's a real need here. Yep. Nate ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
Re: [m5-dev] [PATCH 00 of 41] Ruby Config Updated Patches
The main reason not to delete the old config files now is libruby has yet to be updated. I wanted to hear Derek and others opinion before I removed the files. Brad -Original Message- From: m5-dev-boun...@m5sim.org [mailto:m5-dev-boun...@m5sim.org] On Behalf Of nathan binkert Sent: Friday, January 15, 2010 11:52 AM To: M5 Developer List Subject: Re: [m5-dev] [PATCH 00 of 41] Ruby Config Updated Patches - These patches do not remove the old ruby config and rubymem files. However, once these patches are checked in, those old files won't be needed. Anyone have an opinion on how long they would like those files to stick around? I would like to delete them as soon as we can. Why not delete them now? - There are a few places where the block offset (i.e. the l2_select_low_bit) is defaulted to 6 assuming 64-byte cache blocks. I would like to instead take the log2 of RubySystem's block_size_bytes parameter, however the following code will not work: l2_select_low_bit = Param.Int(math.log((Param.RubySystem(Parent.any, block offset)).block_size_bytes, 2), ) I would be interested to hear any suggestions people have to make something like this work. Param.foo is not a value, so you can't do stuff like this to it. Parent.any is a proxy class and we've defined some mathematical operations for it. We could consider defining others. Alternatively, we could try to support some sort of method invocation as a value. Nate ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev
[m5-dev] Cron m5t...@zizzer /z/m5/regression/do-regression quick
* build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/inorder-timing passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-atomic passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-atomic-ruby passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/o3-timing passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/linux/simple-timing-ruby passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/o3-timing passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-atomic passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-atomic-ruby passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing passed. * build/ALPHA_SE/tests/fast/quick/00.hello/alpha/tru64/simple-timing-ruby passed. * build/ALPHA_SE/tests/fast/quick/01.hello-2T-smt/alpha/linux/o3-timing passed. * build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-atomic passed. * build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-atomic-mp passed. * build/ALPHA_SE/tests/fast/quick/20.eio-short/alpha/eio/simple-timing passed. * build/ALPHA_SE/tests/fast/quick/30.eio-mp/alpha/eio/simple-timing-mp passed. * build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest passed. * build/ALPHA_SE/tests/fast/quick/50.memtest/alpha/linux/memtest-ruby passed. * build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic passed. * build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-atomic-dual passed. * build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-timing-dual passed. * build/ALPHA_FS/tests/fast/quick/10.linux-boot/alpha/linux/tsunami-simple-timing passed. * build/ALPHA_FS/tests/fast/quick/80.netperf-stream/alpha/linux/twosys-tsunami-simple-atomic passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/inorder-timing passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/o3-timing passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-atomic passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-atomic-ruby passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-timing passed. * build/MIPS_SE/tests/fast/quick/00.hello/mips/linux/simple-timing-ruby passed. * build/POWER_SE/tests/fast/quick/00.hello/power/linux/o3-timing passed. * build/POWER_SE/tests/fast/quick/00.hello/power/linux/simple-atomic passed. * build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-atomic passed. * build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-atomic-ruby passed. * build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing passed. * build/SPARC_SE/tests/fast/quick/00.hello/sparc/linux/simple-timing-ruby passed. * build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/o3-timing passed. * build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/simple-atomic passed. * build/SPARC_SE/tests/fast/quick/02.insttest/sparc/linux/simple-timing passed. * build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/o3-timing-mp passed. * build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp passed. * build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/simple-atomic-mp-ruby passed. * build/SPARC_SE/tests/fast/quick/40.m5threads-test-atomic/sparc/linux/simple-timing-mp passed. * build/X86_SE/tests/fast/quick/00.hello/x86/linux/simple-atomic-ruby passed. * build/X86_SE/tests/fast/quick/00.hello/x86/linux/simple-atomic passed. * build/X86_SE/tests/fast/quick/00.hello/x86/linux/simple-timing passed. * build/X86_SE/tests/fast/quick/00.hello/x86/linux/simple-timing-ruby passed. * build/ARM_SE/tests/fast/quick/00.hello/arm/linux/simple-atomic passed. See /z/m5/regression/regress-2010-01-16-03:00:01 for details. ___ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev