> From: fio-owner@xxxxxxxxxxxxxxx [mailto:fio-owner@xxxxxxxxxxxxxxx] On > Behalf Of Sitsofe Wheeler ... > On 29 November 2017 at 13:12, Gavriliuk, Anton (HPS Ukraine) > <anton.gavriliuk@xxxxxxx> wrote: > > Latest findings... > > > > With the fio2.12 /dev/dax & mmap(). I run trace before start test. We > can see above open(), mmap() > > ... > > 5.630837 cpu=65 pid=45154 tgid=45154 madvise [28] ret=0x0 > syscallbeg= 0.000001 *addr=0x7f1a00200000 length=-2147483648 advise=0x1 > > > > How it could be that mmap() length size -2Gb ??? (length=-2147483648). > > I pointed +290g, > > Unsigned number being printed as signed? Yes, that's 0x80000000 in hex. The size_t argument is indeed unsigned (ssize_t is signed): int madvise(void *addr, size_t length, int advice); This print is apparently from: https://github.com/HewlettPackard/LinuxKI in src/kiinfo/syscalls.c print_syscall_args(): switch (format) { case SKIP: break; case DECIMAL: printf ("%c%s=%i", fsep, label, (int32)argval); break; case HEX: printf ("%c%s=0x%llx", fsep, label, argval); break; case OCTAL: printf ("%c%s=0%llo", fsep, label, argval); break; printed as a signed 32-bit value because of src/kiinfo/globals.c: {"madvise", "ret", HEX, "*addr", HEX, "length", DECIMAL, "advise", HEX, NULL, SKIP, NULL, SKIP, NULL, SKIP}, {"mmap", "ret", HEX, "*addr", HEX, "length", DECIMAL, "prot", MMAP_PROT, "flags", MMAP_FLAGS, "fd", DECIMAL, "offset", HEX}, That project should differentiate between signed and unsigned arguments, and add support for 64-bit signed and unsigned arguments as well. ��.n��������+%������w��{.n�������^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�