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

Reply via email to