1. 30 11月, 2022 5 次提交
  2. 29 11月, 2022 9 次提交
    • O
      !250 add UPROBE_ALTER_PC flag for uprobe mechanism · a5a6aebf
      openeuler-ci-bot 提交于
      Merge Pull Request from: @anatas 
       
      [Description]
      We try to implement a live-patch mechanism in the userspace based on the UPROBE.
      In the handler, we may change the PC register.
      In this case, UPROBE must skip the handle of the next instruction.
      
      [Testing]
      kernel options:
      UPROBES_SUPPORT_PC_ALTER=y
      
       
       
      Link:https://gitee.com/openeuler/kernel/pulls/250 
      Reviewed-by: Xu Kuohai <xukuohai@huawei.com> 
      Reviewed-by: Liu Chao <liuchao173@huawei.com> 
      Reviewed-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      a5a6aebf
    • O
      !268 [OLK-5.10]perf arm64 metricgroup support and some bugfix · 1ec4733f
      openeuler-ci-bot 提交于
      Merge Pull Request from: @liujie-248683921 
       
      This series contains support to get basic metricgroups working for
      arm64 CPUs.
      
      Initial support is added for HiSilicon hip08 platform.
      
      Some sample usage on Huawei D06 board:
      
      $ ./perf list metric
      
      List of pre-defined events (to be used in -e):
      
      Metrics:
      
      bp_misp_flush
      [BP misp flush L3 topdown metric]
      branch_mispredicts
      [Branch mispredicts L2 topdown metric]
      core_bound
      [Core bound L2 topdown metric]
      divider
      [Divider L3 topdown metric]
      exe_ports_util
      [EXE ports util L3 topdown metric]
      fetch_bandwidth_bound
      [Fetch bandwidth bound L2 topdown metric]
      fetch_latency_bound
      [Fetch latency bound L2 topdown metric]
      fsu_stall
      [FSU stall L3 topdown metric]
      idle_by_icache_miss
      
      $ sudo ./perf stat -v -M core_bound sleep 1
      Using CPUID 0x00000000480fd010
      metric expr (exe_stall_cycle - (mem_stall_anyload + armv8_pmuv3_0@event=0x7005@)) / cpu_cycles for core_bound
      found event cpu_cycles
      found event armv8_pmuv3_0/event=0x7005/
      found event exe_stall_cycle
      found event mem_stall_anyload
      adding {cpu_cycles -> armv8_pmuv3_0/event=0x7001/
      mem_stall_anyload -> armv8_pmuv3_0/event=0x7004/
      Control descriptor is not initialized
      cpu_cycles: 989433 385050 385050
      armv8_pmuv3_0/event=0x7005/: 19207 385050 385050
      exe_stall_cycle: 900825 385050 385050
      mem_stall_anyload: 253516 385050 385050
      
      Performance counter stats for 'sleep':
      
      989,433 cpu_cycles # 0.63 core_bound
      19,207 armv8_pmuv3_0/event=0x7005/
      900,825 exe_stall_cycle
      253,516 mem_stall_anyload
      
         0.000805809 seconds time elapsed
      
         0.000875000 seconds user
         0.000000000 seconds sys
      perf stat --topdown is not supported, as this requires the CPU PMU to
      expose (alias) events for the TopDown L1 metrics from sysfs, which arm
      does not do. To get that to work, we probably need to make perf use the
      pmu-events cpumap to learn about those alias events.
      
      Metric reuse support is added for pmu-events parse metric testcase.
      This had been broken on power9 recently:
      https://lore.kernel.org/lkml/20210324015418.GC8931@li-24c3614c-2adc-11b2-a85c-85f334518bdb.ibm.com/
      
      Differences to v2:
      
      Add TB and RB tags (Thanks!)
      Rename metricgroup__find_metric() from metricgroup_find_metric()
      Change resolve_metric_simple() to rescan after any insert
      Differences to v1:
      
      Add pmu_events_map__find() as arm64-specific function
      Fix metric reuse for pmu-events parse metric testcase
      John Garry (6):
      perf metricgroup: Make find_metric() public with name change
      perf test: Handle metric reuse in pmu-events parsing test
      perf pmu: Add pmu_events_map__find()
      perf vendor events arm64: Add Hisi hip08 L1 metrics
      perf vendor events arm64: Add Hisi hip08 L2 metrics
      perf vendor events arm64: Add Hisi hip08 L3 metrics
      
      tools/perf/arch/arm64/util/Build | 1 +
      tools/perf/arch/arm64/util/pmu.c | 25 ++
      .../arch/arm64/hisilicon/hip08/metrics.json | 233 ++++++++++++++++++
      tools/perf/tests/pmu-events.c | 83 ++++++-
      tools/perf/util/metricgroup.c | 12 +-
      tools/perf/util/metricgroup.h | 3 +-
      tools/perf/util/pmu.c | 5 +
      tools/perf/util/pmu.h | 1 +
      tools/perf/util/s390-sample-raw.c | 4 +-
      9 files changed, 356 insertions(+), 11 deletions(-)
      create mode 100644 tools/perf/arch/arm64/util/pmu.c
      create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json
      
      Reference:https://patchwork.kernel.org/project/linux-arm-kernel/cover/1617791570-165223-1-git-send-email-john.garry@huawei.com/
      
      Bugfix:perf vendor events arm64: Fix incorrect metrics and improve readability
      First fix the incorrect hip08 metrics, then add some core events to the
      JSON file. Last, change the event code to the event name for improving
      readability.
      changes in v2:
      - adjust commit msg of 1st patch.
      - fix tab in 3rd patch.
      Shang XiaoJing (3):
        perf vendor events arm64: Fix incorrect Hisi hip08 L3 metrics
        perf vendor events arm64: Add HiSilicon hip08 core events
        perf vendor events arm64: Use event name instead of event code
       .../arm64/hisilicon/hip08/core-imp-def.json   | 132 ++++++++++++++++++
       .../arch/arm64/hisilicon/hip08/metrics.json   |  48 +++----
       2 files changed, 156 insertions(+), 24 deletions(-
      Reference:https://lore.kernel.org/all/20221021105035.10000-1-shangxiaojing@huawei.com/
       
       
      Link:https://gitee.com/openeuler/kernel/pulls/268 
      Reviewed-by: Cheng Jian <cj.chengjian@huawei.com> 
      Reviewed-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      1ec4733f
    • O
      !282 Synchronize the code of mainline perf tool and support the parsing of TRBE trace data · baa5f88e
      openeuler-ci-bot 提交于
      Merge Pull Request from: @hejunhao3 
       
      
      ```shell
      Synchronize the code of mainline perf tool and support the parsing of TRBE trace data.
      
      [test log]
      estuary:/$ perf record -e /cs_etm/@trbe3/ -C 3 -o trace.data taskset -c 3 uname -a
      Linux (none) 5.10.0+ #7 SMP PREEMPT Thu Nov 24 11:26:48 CST 2022 aarch64 GNU/Linux
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.851 MB trace.data ]
      /estuary:/$ perf report --stdio -i trace.data -D > report.txt
      estuary:/$ grep -rn "ETE" report.txt
      5835:. ... CoreSight ETE Trace data: size 0xd0d00 bytes
      estuary:/$ grep -rn "I_ASYNC : Alignment Synchronisation." report.txt | tail -n 5
      497159:	Idx:816712; ID:7;	I_ASYNC : Alignment Synchronisation.
      499987:	Idx:820816; ID:7;	I_ASYNC : Alignment Synchronisation.
      502722:	Idx:824928; ID:7;	I_ASYNC : Alignment Synchronisation.
      505083:	Idx:829040; ID:7;	I_ASYNC : Alignment Synchronisation.
      507427:	Idx:833132; ID:7;	I_ASYNC : Alignment Synchronisation.
      estuary:/$   
      estuary:/$ perf record -e /cs_etm/@tmc_etr0/ -C 2 -o trace.data taskset -c 2 uname -a
      Linux (none) 5.10.0+ #7 SMP PREEMPT Thu Nov 24 11:26:48 CST 2022 aarch64 GNU/Linux
      [82501.067549] coresight tmc_etr0: timeout while waiting for completion of Manual Flush
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.690 MB trace.data ]
      /estuary:/$ perf report --stdio -i trace.data -D > report.txt
      estuary:/$ grep -rn "ETE" report.txt
      8528:. ... CoreSight ETE Trace data: size 0xa40d0 bytes
      estuary:/$ grep -rn "I_ASYNC : Alignment Synchronisation." report.txt | tail -n 5
      349615:	Idx:633382; ID:5;	I_ASYNC : Alignment Synchronisation.
      350304:	Idx:634786; ID:5;	I_ASYNC : Alignment Synchronisation.
      352589:	Idx:639200; ID:5;	I_ASYNC : Alignment Synchronisation.
      354957:	Idx:643604; ID:5;	I_ASYNC : Alignment Synchronisation.
      357246:	Idx:648003; ID:5;	I_ASYNC : Alignment Synchronisation.
      estuary:/$   
      estuary:/$ perf record -C 0 -e arm_spe_0/branch_filter=1/ -o branch.data  sleep 3s
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.663 MB branch.data ]
      estuary:/$ perf report -D -i branch.data > branch.log
      estuary:/$ grep -rn "B COND" branch.log  | tail -=n 5 
      133506:.  000996d4:  4a 01                                           B COND
      133517:.  0009970c:  4a 01                                           B COND
      133539:.  0009977c:  4a 01                                           B COND
      133572:.  00099824:  4a 01                                           B COND
      133671:.  00099a1c:  4a 01                                           B COND
      estuary:/$ perf -v
      perf version 5.10.gede0fc40b9bf
      ``` 
       
      Link:https://gitee.com/openeuler/kernel/pulls/282 
      Reviewed-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      Reviewed-by: Ling Mingqiang <lingmingqiang@huawei.com> 
      Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      baa5f88e
    • O
      !283 [OLK-5.10] Add debug print of 64G link speed · bcad849d
      openeuler-ci-bot 提交于
      Merge Pull Request from: @xiaosuli3109 
       
      Fibre Channel has been the standard connection type for storage area networks (SAN) in enterprise storage. Despite its name, Fibre Channel signaling can run on both twisted pair copper wire and fiber-optic cables.
      
      The FibreChannel Gen7 adapter supports 64G link speeds. Add debug print support to the driver.
      
      Fix Issue: https://gitee.com/openeuler/kernel/issues/I6337O  
       
      Link:https://gitee.com/openeuler/kernel/pulls/283 
      Reviewed-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      bcad849d
    • H
      LoongArch: defconfig: Set CONFIG_TXGBE=m by default · 3eb9c0b6
      Hongchen Zhang 提交于
      LoongArch inclusion
      category: feature
      bugzilla: https://gitee.com/openeuler/kernel/issues/I5OHOB
      
      --------------------------------
      
      Ensure the netswift 10G NIC driver ko can be distributed in ISO on
      LoongArch.
      Signed-off-by: NHongchen Zhang <zhanghongchen@loongson.cn>
      3eb9c0b6
    • B
      LS7A2000 : Add quirk for OHCI device rev 0x02 · 03489ad3
      Baoqi Zhang 提交于
      LoongArch inclusion
      category: feature
      bugzilla: https://gitee.com/openeuler/kernel/issues/I5OHOB
      
      --------------------------------
      Signed-off-by: NBaoqi Zhang <zhangbaoqi@loongson.cn>
      Change-Id: I7d70a63b5a813551b81f60f07dfedbbcd01d4336
      03489ad3
    • Q
      stmmac: pci: Add dwmac support for Loongson · 5e50208e
      Qing Zhang 提交于
      LoongArch inclusion
      category: feature
      bugzilla: https://gitee.com/openeuler/kernel/issues/I5OHOB
      
      --------------------------------
      
      This GMAC module is integrated into the Loongson-2K SoC and the LS7A
      bridge chip.
      
      commit 30bba69d upstream.
      
      Backport:
      stmmac: dwmac-loongson: fix uninitialized variable in loongson_dwmac_probe()
      stmmac: dwmac-loongson: Fix unsigned comparison to zero
      stmmac: dwmac-loongson:Fix missing return value
      stmmac: dwmac-loongson: change loongson_dwmac_driver from global to static
      stmmac: pci: Add LS7A support for dwmac-loongson
      
      This patch also disable dwmac FLOW_AUTO. Since DWMAC_LOONGSON do NOT support
      FLOW_AUTO.
      Signed-off-by: NQing Zhang <zhangqing@loongson.cn>
      Signed-off-by: NJiaxun Yang <jiaxun.yang@flygoat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NMing Wang <wangming01@loongson.cn>
      Change-Id: Ifefac7d47a05373ca7160d22a44d6c07b6a896e5
      5e50208e
    • L
      uprobe: add UPROBE_ALTER_PC flag for uprobe · 690ed1ed
      Longjun Luo 提交于
      hulk inclusion
      category: feature
      bugzilla: https://gitee.com/openeuler/kernel/issues/I61AXT
      CVE: N/A
      
      Within uprobe handlers, the pc register could be
      modified. In this situation, there is no need to
      do a single stepping. Just like the kprobe, we
      skip it.
      Signed-off-by: NLongjun Luo <luolongjun@huawei.com>
      690ed1ed
    • X
      kabi: Fix kabi breakage caused by commit d5616bac. · a9cbff64
      Xie Haocheng 提交于
      amd inclusion
      category: feature
      bugzilla: https://gitee.com/openeuler/kernel/issues/I5S3WV
      CVE: NA
      
      -------------------------------------------------
      
      Error report detail:
      *** ERROR - ABI BREAKAGE WAS DETECTED ***
      
      The following symbols have been changed (this will cause an ABI breakage):
      new kabi:
      0x65d25289	__SCK__tp_func_xdp_exception	vmlinux	EXPORT_SYMBOL_GPL
      0x5e9265ee	__tracepoint_xdp_exception	vmlinux	EXPORT_SYMBOL_GPL
      old kabi:
      0x5e0fbbff	__SCK__tp_func_xdp_exception	vmlinux	EXPORT_SYMBOL_GPL
      0x017cc464	__tracepoint_xdp_exception	vmlinux	EXPORT_SYMBOL_GPL
      Signed-off-by: NXie Haocheng <haocheng.xie@amd.com>
      a9cbff64
  3. 28 11月, 2022 3 次提交
    • O
      !276 support set/get VxLAN rule of rx flow director by ethtool · b683f7f9
      openeuler-ci-bot 提交于
      Merge Pull Request from: @svishen 
       
      Background:
      Currently, the HNS3 driver, Linux kernel, and standard tools do not support the configuration of VXLAN tunnel tuple information as the key of the flow table. The ethtool –U command supports only the configuration of tuples for non-tunnel packets. Two types of tuples, vxlan4 and vxlan6, need to be added.
      
      Functions:
      The vxlan4 and vxlan6 flow types are added to the ethtool –U command. The vni in the outer header and the source MAC address, destination MAC address, source IP address, destination IP address, and VLAN ID in the inner header can be configured as tuple information. The HNS3 driver supports all tuple configurations of both types.
      
      patch name:
      (1) net: ethtool: add VxLAN to the NFC API
      (2) net: hns3: support set/get VxLAN rule of rx flow director by ethtool
      
      
      In include/uapi/linux/ethtool.h
      We changed a union, but didn't change its size.Neither of the two newly added members exceeds 52 bytes.
      
      The impact on user-mode tools is as follows:
      (1)The new tool is compiled on the old kernel and can configure the old flow table. The old kernel does not support VXLAN configuration.
      
      ```
      [root@locaLhost ~]#
      [root@localhost alt rpm -ga | grep ethtool
      ethtool-5.15-4.aarch64
      [root@localhost ~]#
      [root@localhost ~]# uname -a
      Linux localhost.localdomain 5.10.0-60.18.0.50.0e2203.aarch64 #1 SMP Wed Mar 30 02:43:08 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
      [root@localhost ~]#
      [root@localhost ~]# ethtool -U enol flow-type tep6 tclass Oxi8 src-ip fese::218:2dff:feee:12 loc 4 action -1
      [root@localhost ~]# ethtool -u
      ethtool: bad command line argument(s)
      For more information run ethtool -h
      [root@localhost ~]# ethtool -u eno1
      32 RX rings available
      Total 1 rules
      Filter: 4
      Rule Type: TCP over IPv6
      Src IP addr: fe80::218:2dff:fe00:12 mask: :
      Dest Ip addr: :: mask: ffff:ffff:fff:ffff:ffff:ffff:ffff:ffff
      Traffic class: 0x18 mask: 0x0
      Src port: 0 mask: Oxffff
      Dest'port: 0 mask: 0xffff
      Action: Drop
      [root@localhost ~]# ethtool -U enol flow-type udp4 src-ip 1.1.1.1 vf @ loc 4 queue 2
      [root@localhost ~]# ethtool -u enot
      32 RX rings available
      Total 1 rules
      Filter: 4
      Rule Type: UDP over IPv4
      Src IP addr: 1.1.1.1 mask: 0.0.0.0
      Dest IP addr: 0.0.0.0 mask: 255.255.255.255
      TOS: 0x0 mask: Oxff
      Src port: 0 mask: oxffff
      Dest'port: 0 mask: 0xffff
      Action: Direct to VF 0 queue 2
      [root@localhost ~]# ethtool -U enol flow-type vxlan src-ip 192.168.1.2 loc 4
      Add rule, invalid syntax
      ethtool: bad command line argument(s)
      For more information run ethtool -h
      [root@localhost ~]#
      
      ```
      
      
      (2)The old tool is deployed on the new kernel and can configure the old flow table.
      
      ```
      [root@localhost aarch64]# uname -a
      inux (none) 5.106.0+ #1 SMP Thu Nov 24 21:25:01 CST 2022 aarch64 GNU/Linux
      [root@localhost aarch64]#
      [root@localhost aarch64]# ethtool --version
      sthtool version 5.10
      [root@localhost aarch64]#
      -oot@fpga: /root# ethtool -U eth1 flow-type tcp4 src-ip 192.168.49.30 action 3 loc 4
      [root@localhost aarch64]# /root#
      [root@localhost aarch64]# ethtool -u etht
      1 RX rings_ available
      Total 1 rules
      -ilter: 4
      Rule Type: TCP over IPv4
      Src IP addr: 192.168.40.30 mask: 0.0.0.0
      Dest IP addr: 0.0.0.0 mask: 255.255.255.255
      TOS: 0x0 mask: 0xff
      Src port: 0 mask: oxffff
      Dest port: 0 mask: Oxffff
      Action: Direct to queue 3
      [root@localhost aarch64]# ethtool -U eth1 delete 4
      [root@localhost aarch64]# ethtool -u eth1
      4 RX rings_available
      Total @ rules
      [root@localhost aarch64]#
      ```
      
      
      (3)The VXLAN flow table is successfully configured using the new kernel and tool.
      
      ```
      [root@localhost aarch64]# ip Link add vxlan® type vxlan id 100 local 192.168.1.2 remote 192.168.1.3 dstport 4789 dev eno1
      [root@localhost aarch64]# ethtool -u enol
      32 RX rings available
      Total 1 rules
      Filter: 511
      Rule Type: Vxlan IPv4
      Vni:  100 mask: 0x0
      Src MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
      Dest MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
      Ethertype: 0x0 mask: OxFFFF
      Src IP addr: 0.0.0.0 mask: 255.255.255.255
      Dest IP addr: 192.168.1.3 mask: 0.0.0.0
      TOS: 0x0 mask: Oxff
      L4 protocol: © mask: Oxff
      Action: Direct to queue 0
      [root@localhost aarch64]#
      [root@localhost aarch64]# ethtool -N eno1 delete 511
      [root@localhost aarch64]# ethtool -u eno1
      52 Rx rings available
      Total o rdles
      [root@localhost aarch64]#
      [root@localhost aarch64]# ethtool -U eno1 flow-type vxlan4 vni 100 dst-ip 192.168.1.3
      Added rule with ID 511
      [root@localhost aarch64]# ethtool -u enot
      52 Rx rings available
      Total 1 rules
      Filter: 511
      Rule Type: Vxlan IPv4
      Vni:  100 mask: 0x0
      Src MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
      Dest MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
      Ethertype: 0x0 mask: 0xFFFF
      Src IP addr: 0.0.0.0 mask: 255.255.255.255
      Dest IP addr: 192.168.1.3 mask: 0.0.0.0
      TOS: 0x0 mask: oxff
      L4 protocol: © mask: Oxff
      Action: Direct to queue 0
      [root@localhost aarch64]# uname -a
      Linux localhost.localdomain 5.10.0+ #10 SMP Fri Nov 25 14:12:36 CST 2022 aarch64 aarch64 aarch64 GNU/Linux
      [root@localhost aarch64]# ethtool --version
      ethtool version 5.15
      ```
      
       
       
      Link:https://gitee.com/openeuler/kernel/pulls/276 
      Reviewed-by: Yue Haibing <yuehaibing@huawei.com> 
      Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com> 
      b683f7f9
    • O
      !215 cgroupv1使能cgroup writeback的功能 · c0a50b1e
      openeuler-ci-bot 提交于
      Merge Pull Request from: @lujialin2 
       
      In cgroupv1, cgroup writeback is not supported for two problems:
      1) Blkcg_css and memcg_css are mounted on different cgroup trees. Therefore, blkcg_css cannot be found according to a certain memcg_css.
      2) Buffer I/O is worked by kthread, which is in the root_blkcg. Therefore, blkcg cannot limit wbps and wiops of buffer I/O.
      We solve the two problems and support cgroup writeback on cgroupv1.
      CONFIG: CONFIG_CGROUP_V1_WRITEBACK
      startup params: cgroup1_writeback
      If someone want to support cgroup writeback in cgroupv1, turn on CONFIG_CGROUP_V1_WRITEBACK; add cgroup1_writeback;mount memcg and blkcg on cgroupv1;
      If someone want to attach a cerntain blkcg to a memcg, just echo the inode of the blkcg into memory_wb_blkcg_ino of memcg.
       
       
      Link:https://gitee.com/openeuler/kernel/pulls/215 
      Reviewed-by: Liu Chao <liuchao173@huawei.com> 
      Reviewed-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      c0a50b1e
    • O
      !222 vdpa: add two ioctl commands to support generic vDPA · a3c1378d
      openeuler-ci-bot 提交于
      Merge Pull Request from: @Zhao_Py 
       
      [Description]​
      To support generic vdpa deivce, we need add the following ioctls:
        - GET_CONFIG_SIZE: the size of the virtio config space
        - GET_VQS_COUNT: the count of virtqueues that exposed
      
      #I5WXCZ
      https://lore.kernel.org/all/20220315032553.455-1-longpeng2@huawei.com/
      
      upstream commits list here:
      64b9f64f vdpa: introduce virtio pci driver
      442706f9 vdpa: add get_config_size callback in vdpa_config_ops
      a61280dd vdpa: support exposing the config size to userspace
      fd70a406 vdpa: Extend routine to accept vdpa device name
      33b34750 vdpa: Define vdpa mgmt device, ops and a netlink interface
      476c135e vdpa: Add missing comment for virtqueue count
      903f7bca vdpa: Enable a user to add and delete a vdpa device
      b04d910a vdpa: support exposing the count of vqs to userspace
      64f2087a virtio-pci: do not access iomem via struct virtio_pci_device directly
      b5d58094 virtio-pci: split out modern device
      117a9de2 virtio-pci-modern: factor out modern device initialization logic
      32490370 virtio-pci-modern: introduce vp_modern_remove()
      1a5c85f1 virtio-pci-modern: introduce helper to set config vector
      e3669129 virtio-pci-modern: introduce helpers for setting and getting status
      0b017708 virtio-pci-modern: introduce helpers for setting and getting features
      ed2a73db virtio-pci-modern: introduce vp_modern_generation()
      a6525b99 Merge tag 'mips_5.12_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
      e1b0fa2e virtio-pci-modern: introduce vp_modern_queue_address()
      dc2e6481 virtio-pci-modern: introduce helper to set/get queue_enable
      75658afb virtio-pci-modern: introduce helper for setting/geting queue size
      6e52fc44 virtio-pci-modern: introduce helper for getting queue nums
      1bfd8413 virtio-pci-modern: introduce helper to get notification offset
      8000a6b6 virito-pci-modern: rename map_capability() to vp_modern_map_capability()
      fd502729 virtio-pci: introduce modern device module
      bc0d90ee vdpa: Enable user to query vdpa device info
      29b90f92 vdpa: remove unnecessary 'default n' in Kconfig entries
      275900df vdpa_sim: split vdpasim_virtqueue's iov field in out_iov and in_iov
      2f8f4618 vdpa_sim: add device id field in vdpasim_dev_attr
      a13b5918 vdpa_sim: add work_fn in vdpasim_dev_attr
      c124a95e vdpa_sim: add set_config callback in vdpasim_dev_attr
      011c35ba vdpa_sim: add supported_features field in vdpasim_dev_attr
      f00bdce0 vdpa: set the virtqueue num during register
      db1e8bb6 vdpa: split vdpasim to core and net modules
      0c853c2c vdpa: add vdpa simulator for block device
      da7af696 vdpa_sim: make vdpasim->buffer size configurable
      a3c06ae1 vdpa_sim_net: Add support for user supported devices
      899c4d18 vdpa_sim_blk: add support for vdpa management tool
      539fec78 vdpa: add driver_override support
      d6d8bb92: vhost/vdpa: use get_config_size callback in vhost_vdpa_config_validate()
      9e3bb9b7: virtio_pci_modern: introduce helper to map vq notify area
      7dca6c0e: virtio-pci library: switch to use vp_modern_map_vq_notify()
      11d8ffed: vp_vdpa: switch to use vp_modern_map_vq_notify()
      9e311bca: virtio-pci library: report resource address
      526cb858: vp_vdpa: report doorbell address
      0686082d: vdpa: Add reset callback in vdpa_config_ops
      5bbfea1e: vp_vdpa: add vq irq offloading support
      530a5678: vdpa: support packed virtqueue for set/get_vq_state()
      0140b3d0: virtio-pci library: introduce vp_modern_get_driver_features()
      1225c216: vp_vdpa: allow set vq state to initial state after reset
      0f8a0b0b: virtio_pci_modern: __force cast the notify mapping
      d7bce85a: virtio_pci_modern: correct sparse tags for notify
      9632e78e: vp_vdpa: Fix return value check for vdpa_alloc_device()
      27d9839f: virtio: always enter drivers/virtio/
      eb057b44: vdpa: fix use-after-free on vp_vdpa_remove
      bb47620b: vdpa: Consider device id larger than 31
      ef76eb83: vdpa/mlx5: Fix clearing of VIRTIO_NET_F_MAC feature bit
      870aaff9: vdpa: clean up get_config_size ret value handling
      
      [Testing]
      kernel options:
      CONFIG_VDPA=m
      CONFIG_VDPA_SIM=m
      CONFIG_VDPA_SIM_NET=m
      CONFIG_VDPA_SIM_BLOCK=m
      CONFIG_VP_VDPA=m
      CONFIG_VHOST=m
      CONFIG_VHOST_MENU=y
      CONFIG_VHOST_NET=m
      CONFIG_VHOST_VSOCK=m
      CONFIG_VHOST_VDPA=m
      CONFIG_RUNTIME_TESTING_MENU=y
      
      Tested on openEuler 22.03 LTS:
      ```
      $ modprobe vdpa
      $ modprobe vdpa_sim
      $ modprobe vdpa-sim-net
      $ modprobe vhost-vdpa
      $ vdpa dev add mgmtdev vdpasim_net name vdpa0
      $ vdpa dev show
      vdpa0: type network mgmtdev vdpasim_net vendor_id 0 max_vqs 2 max_vq_size 256
      $ ls /dev/vhost-vdpa-*
      /dev/vhost-vdpa-0
      ```
      
      
      
      
       
       
      Link:https://gitee.com/openeuler/kernel/pulls/222 
      Reviewed-by: Kevin Zhu <zhukeqian1@huawei.com> 
      Reviewed-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      a3c1378d
  4. 26 11月, 2022 1 次提交
    • O
      !275 Intel Advanced Matrix Extensions (AMX) - KVM support · 606f08e8
      openeuler-ci-bot 提交于
      Merge Pull Request from: @Linwang_68f8 
       
       **Content:** 
      Intel® Advanced Matrix Extensions (Intel® AMX) is a new 64-bit programming paradigm consisting of two components: a set of 2-dimensional registers (tiles) representing sub-arrays from a larger 2-dimensional memory image, and an accelerator able to operate on tiles, the first implementation is called TMUL (tile matrix multiply unit).
      
      There are 37 patches in total in this patch set to introduce AMX guest support in openEuler.
      
       **Intel-kernel issue:** 
      https://gitee.com/openeuler/intel-kernel/issues/I5RQLJ
      
       **Test environment:** 
      Host: openEuler 22.09 + backporting kernel
      Guest: openEuler 22.09 + QEMU 7.0 + backporting kernel
      
       **Test cases:** 
      Host:
      kernel self-test including sigaltstack and AMX state management testing.
      TMUL functional testing.
      AMX stress.
      Context switch testing.
      INT8/BF16 online inference.
      Guest:
      AMX stress.
      Context switch testing.
      INT8/BF16 online inference.
      
       **Known issue:** 
      N/A
      
       **Default config change:** 
      N/A 
       
      Link:https://gitee.com/openeuler/kernel/pulls/275 
      Reviewed-by: Jun Tian <jun.j.tian@intel.com> 
      Reviewed-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      Reviewed-by: Liu Chao <liuchao173@huawei.com> 
      Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com> 
      606f08e8
  5. 25 11月, 2022 22 次提交