summary refs log tree commit diff stats
path: root/results/classifier/accel-gemma3:12b/kvm/1894617
blob: 635bce2c9e3a753e8cdf38f3b1a14ac770282bcc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
qemu-i386 mmap but offset greater than 32 bits

I don't know if it's a problem, but I did, and it bothered me for a long time.
When I use qemu-i386 and interact with the video card device,an error has occurred:

18534 ioctl(4,DRM_IOCTL_MODE_GETENCODER,{39,0,0,0,0}) = 0 ({39,4,34,3,0})
18534 ioctl(4,DRM_IOCTL_MODE_CREATE_DUMB,{1080,1920,32,0,0,0,0}) = 0 ({1080,1920,32,0,1,7680,8294400})
18534 ioctl(4,DRM_IOCTL_MODE_ADDFB,{0,1920,1080,7680,32,24,1}) = 0 ({66,1920,1080,7680,32,24,1})
18534 ioctl(4,DRM_IOCTL_MODE_MAP_DUMB,{1,0,0}) = 0 ({1,0,5543018496})
18534 mmap2(NULL,8294400,PROT_READ|PROT_WRITE,MAP_SHARED,4,0x14a63c) = -1 errno=22 (Invalid argument)

"5543018496" is the offset through ioctl() and it is "0x14a63c000".
In qemu:
ret = target_mmap(arg1, arg2, arg3,
      target_to_host_bitmask(arg4, mmap_flags_tbl),
      arg5, arg6 << MMAP_SHIFT);

The type of "arg6" is ulong.When use qemu-i386, arg6 can't be set to "0x14a63c000".So it's wrong for my program.

I want to find a good way to deal with this kind of problem, but I'm not very familiar with QEMU,
so I came to ask how to deal with this problem.

Thank you!