summary refs log tree commit diff stats
path: root/gitlab/issues_text/target_missing/host_missing/accel_missing/1705
blob: 74c4dd2891a6d46210a1a561ee1ea51ea952607b (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Illegal instruction when I want to numactl --cpubind=0 --membind=1 to CXL Memory
Description of problem:
I ran QEMU for simulating CXL DRAM and when I tried to run `numactl --cpubind=0 --membind=1  ls` , I got `Illegal instruction`
The numa node 1 was the CXL DRAM simulated by QEMU.

> root@8003:~# numactl -H
> available: 2 nodes (0-1)
> node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
> node 0 size: 32090 MB
> node 0 free: 31325 MB
> node 1 cpus:
> node 1 size: 32768 MB
> node 1 free: 32768 MB
> node distances:
> node 0 1
> 0: 10 20
> 1: 20 10

When I ran on numa node 1, no failed

> root@8003:~# numactl --membind=0 ls
> ndctl

When I ran on numa node 1(CXL DRAM),it failed.

> root@8003:~# numactl --membind=1 ls
> [ 913.975032] traps: ls[667] trap invalid opcode ip:7fdec255d180 sp:7ffd3c507288 error:0 in ld-linux-x86-64.so.2[7fdec2546000+2a000]
> **Illegal instruction**
Steps to reproduce:
1. start the guest
2. cxl list  (we could see the simulated CXL DRAM)
> root@8003:~# cxl list
> [
>   {
>     "memdev":"mem0",
>     "ram_size":34359738368,
>     "serial":0,
>     "host":"0000:0d:00.0"
>   }
> ]
3. cxl create-region -t ram -d decoder0.0 -m mem0
4. daxctl reconfigure-device dax0.0 --mode=system-ram
5. numactl -H
> root@8003:~# numactl -H
> available: 2 nodes (0-1)
> node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
> node 0 size: 32090 MB
> node 0 fr
> ee: 31254 MB
> node 1 cpus:
> node 1 size: 32768 MB
> node 1 free: 32768 MB
> node distances:
> node   0   1 
>   0:  10  20 
>   1:  20  10 
6. numactl --membind=1 ls
> root@8003:~# numactl --membind=1 ls
> [38441.892140] **traps: ls[861] trap invalid opcode ip:7f15db6ac180 sp:7ffc648755c8 **error:0 in ld-linux-x86-64.so.2[7f15db695000+2a000]
> **Illegal instruction**
Additional information:
When I run dmesg, I found an error.
> root@8003:~# dmesg|grep error
> [    2.321130] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2

Since my CPU is a Xeon III, not a Xeon IV with CXL support, **I'm wondering if it's because the CPU doesn't support CXL instructions, or if the Xeon III can emulate it, just because my settings don't make sense**. If this is my settings problem, could you help me to deal this? Or it just caused by my Xeon III,I will update it to  Xeon IV.