blob: eafb9e390569907276a304d3b158ee6e0b6cfd8d (
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
|
peripherals: 0.935
device: 0.799
performance: 0.791
architecture: 0.672
network: 0.636
files: 0.618
permissions: 0.559
ppc: 0.520
socket: 0.520
kernel: 0.492
vnc: 0.459
semantic: 0.453
graphic: 0.414
virtual: 0.402
risc-v: 0.391
VMM: 0.388
register: 0.382
PID: 0.381
hypervisor: 0.372
i386: 0.342
user-level: 0.336
debug: 0.320
x86: 0.317
assembly: 0.235
boot: 0.218
arm: 0.173
mistranslation: 0.169
TCG: 0.150
KVM: 0.071
attach-ns doesn't work correctly in SR-IOV, cannot attach NS to VF if it is attached to a PF
Description of problem:
We can't attach namespace to a VF (Secondary controller) unless it is not attached to a primary controller first
Lately in the commit https://github.com/qemu/qemu/commit/6ccca4b6bb9f994cc04e71004e1767a3476d2b23 the file qemu/hw/nvme/ctrl.c got changed -\> in function "nvme_ns_attachment" -\> line 6819 (At the time I'm writing the bug) which is the condation in attach ns to check if the namespace is attached "`if (nvme_ns(n, nsid)) {`"
This change will always result in checking the namespace attach to the PF even if we are trying to attach it to the VF.
Steps to reproduce:
1. Enable a VF:
```
echo 1 > /sys/bus/pci/devices/0000:01:00.0/reset
sleep 1
echo 2 > /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs
sleep 1
nvme virt-mgmt /dev/nvme0 -c 1 -r 1 -a 8 -n 1
nvme virt-mgmt /dev/nvme0 -c 1 -r 0 -a 8 -n 2
nvme virt-mgmt /dev/nvme0 -c 1 -a 9
sleep 1
```
2. attach namespace 1 to the PF (e.g. `vme attach-ns /dev/nvme0 -n1 -c0` )
3. try to attach it using the nvme_cli command from the PF (e.g. `nvme attach-ns /dev/nvme0 -n1 -c1`)
|