Hello, When I running Redis with YCSB, I got below warning from Gem5 (Redis with redis-benchmark does not occur below warning).
warn: instruction 'fwait' unimplemented warn: instruction 'frndint' unimplemented warn: instruction 'fistp' unimplemented warn: instruction 'f2xm1' unimplemented warn: instruction 'ffree' unimplemented warn: instruction 'fincstp' unimplemented Also, below is from YCSB source code that is related to YCSB errors (IndexOutOfBoundsException). /** * Reads a big-endian 8-byte long from an offset in the given array. * @param bytes The array to read from. * @return A long integer. * @throws IndexOutOfBoundsException if the byte array is too small. * @throws NullPointerException if the byte array is null. */ public static long bytesToLong(final byte[] bytes) { return (bytes[0] & 0xFFL) << 56 | (bytes[1] & 0xFFL) << 48 | (bytes[2] & 0xFFL) << 40 | (bytes[3] & 0xFFL) << 32 | (bytes[4] & 0xFFL) << 24 | (bytes[5] & 0xFFL) << 16 | (bytes[6] & 0xFFL) << 8 | (bytes[7] & 0xFFL) << 0; } /** * Writes a big-endian 8-byte long at an offset in the given array. * @param val The value to encode. * @throws IndexOutOfBoundsException if the byte array is too small. */ public static byte[] longToBytes(final long val) { final byte[] bytes = new byte[8]; bytes[0] = (byte) (val >>> 56); bytes[1] = (byte) (val >>> 48); bytes[2] = (byte) (val >>> 40); bytes[3] = (byte) (val >>> 32); bytes[4] = (byte) (val >>> 24); bytes[5] = (byte) (val >>> 16); bytes[6] = (byte) (val >>> 8); bytes[7] = (byte) (val >>> 0); return bytes; } Maybe type inversion to/from long incurs floating-point instructions that are not implemented in Gem5, which results in YCSB errors. Is there any way I can solve this problem? - Is there any patch that implemented those instructions? I am sort of Gem5 beginner, implementing those instructions in Gem5 would be hard for me ;( Regards, Miseon Han -----Original Message----- From: Ciro Santilli <ciro.santi...@gmail.com> Sent: Tuesday, April 14, 2020 1:08 AM To: gem5 users mailing list <gem5-users@gem5.org>; Miseon Han <miseon....@us.skhynix.com> Subject: Re: [gem5-users] Running YCSB in Gem5 FS You have to try and debug it further to narrow down the exact operation gem5 seems to be doing wrong (--debug-flags ExecAll, GDB into guest). This could be easy to spot, or extremely difficult if the divergence happened way earlier in execution before the crash, but I don't see an alternative. One possible approach especially for single threaded execution is to try and compare QEMU ExecAll logs to QEMU instruction traces. On Mon, Apr 13, 2020 at 10:58 PM Miseon Han <miseon....@us.skhynix.com> wrote: > > Hello, > > > > I made x86 disk image with ubuntu 16.06 and build kernel 4.8.13 > following > http://www.lowepower.com/jason/setting-up-gem5-full-system.html. > (using QEMU) > > Gem5 source code is downloaded using this: git clone > https://gem5.googlesource.com/public/gem5 > > > > Using QEMU, I installed Redis-4.0.0 and YCSB-0.17.0 in my created disk image. > At QEMU, Redis and YCSB worked well. > > Redis: ./src/redis-server redis.conf > > YCSB: ./bin/ycsb load redis -s -P workloads/workloada -p > "redis.host=127.0.0.1" -p "redis.port=6379" > > > > However, when I use Gem5 Full System mode (./build/X86/gem5.opt > configs/example/fs.py –disk-images=myimage –kernel=mykernel > –mem-size=4096MB), YCSB gives me error “IndexOutOfBoundsException: Index 17”. > > > > As far as I know, many papers used gem5 for simulating server-client model > and used YCSB for client. > > My tested environment is one node for Redis and YCSB. So, I think Redis and > YCSB should be worked fine in this environment. > > > > Is there any way I can solve this problem? > > > > Regards, > > Miseon Han > > > > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users _______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users