mailweb.openeuler.org
Manage this list

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Kernel

Threads by month
  • ----- 2025 -----
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
kernel@openeuler.org

June 2023

  • 61 participants
  • 246 discussions
[PATCH openEuler-22.03-LTS-SP2] drm/qxl: Fix missing free_irq
by Wei Li 09 Jun '23

09 Jun '23
When doing "cat /proc/interrupts" after qxl.ko is unloaded, an oops occurs: BUG: unable to handle page fault for address: ffffffffc0274769 PGD 2a0d067 P4D 2a0d067 PUD 2a0f067 PMD 103f39067 PTE 0 Oops: 0000 [#1] PREEMPT SMP PTI CPU: 6 PID: 246 Comm: cat Not tainted 6.1.0-rc2 #24 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:string_nocheck+0x34/0x50 Code: 66 85 c0 74 3c 83 e8 01 4c 8d 5c 07 01 31 c0 eb 19 49 39 fa 76 03 44 88 07 48 83 c7 RSP: 0018:ffffc90000893bb8 EFLAGS: 00010046 RAX: 0000000000000000 RBX: ffffc90000893c50 RCX: ffff0a00ffffff04 RDX: ffffffffc0274769 RSI: ffff888102812000 RDI: ffff88810281133e RBP: ffff888102812000 R08: ffffffff823fa5e6 R09: 0000000000000007 R10: ffff888102812000 R11: ffff88820281133d R12: ffffffffc0274769 R13: ffff0a00ffffff04 R14: 0000000000000cc4 R15: ffffffff823276b4 FS: 000000000214f8c0(0000) GS:ffff88842fd80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffc0274769 CR3: 00000001025c4005 CR4: 0000000000770ee0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Call Trace: <TASK> string+0x46/0x60 vsnprintf+0x27a/0x4f0 seq_vprintf+0x34/0x50 seq_printf+0x53/0x70 ? seq_read_iter+0x365/0x450 show_interrupts+0x259/0x330 seq_read_iter+0x2a3/0x450 proc_reg_read_iter+0x47/0x70 generic_file_splice_read+0x94/0x160 splice_direct_to_actor+0xb0/0x230 ? do_splice_direct+0xd0/0xd0 do_splice_direct+0x8b/0xd0 do_sendfile+0x345/0x4f0 __x64_sys_sendfile64+0xa1/0xc0 do_syscall_64+0x38/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x4bb0ce Code: c3 0f 1f 00 4c 89 d2 4c 89 c6 e9 bd fd ff ff 0f 1f 44 00 00 31 c0 c3 0f 1f 44 00 00 RSP: 002b:00007ffd99dc3fb8 EFLAGS: 00000246 ORIG_RAX: 0000000000000028 RAX: ffffffffffffffda RBX: 0000000001000000 RCX: 00000000004bb0ce RDX: 0000000000000000 RSI: 0000000000000003 RDI: 0000000000000001 RBP: 0000000000000001 R08: 000000000068f240 R09: 0000000001000000 R10: 0000000001000000 R11: 0000000000000246 R12: 0000000000000003 R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000000 </TASK> It seems that qxl doesn't free the interrupt it requests during unload, fix this by adding the missing free_irq(). Fixes: f64122c1f6ad ("drm: add new QXL driver. (v1.4)") Signed-off-by: Wei Li <liwei391(a)huawei.com> --- drivers/gpu/drm/qxl/qxl_kms.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/qxl/qxl_kms.c b/drivers/gpu/drm/qxl/qxl_kms.c index dc5b3850a4d4..d8a4873ceb82 100644 --- a/drivers/gpu/drm/qxl/qxl_kms.c +++ b/drivers/gpu/drm/qxl/qxl_kms.c @@ -287,10 +287,14 @@ int qxl_device_init(struct qxl_device *qdev, void qxl_device_fini(struct qxl_device *qdev) { + struct drm_device *ddev = &qdev->ddev; + struct pci_dev *pdev = to_pci_dev(ddev->dev); + qxl_bo_unref(&qdev->current_release_bo[0]); qxl_bo_unref(&qdev->current_release_bo[1]); qxl_gem_fini(qdev); qxl_bo_fini(qdev); + free_irq(pdev->irq, ddev); flush_work(&qdev->gc_work); qxl_ring_free(qdev->command_ring); qxl_ring_free(qdev->cursor_ring); -- 2.25.1
2 1
0 0
[PATCH v8 openEuler-22.03-LTS-SP2 0/4] support ACPI for MPAM 2.0
by Yu Liao 09 Jun '23

09 Jun '23
This patch series support ACPI for MPAM 2.0. v5: fix unused variable warning. v4: add PPTT null check to prevent NULL pointer deference. Erik Kaneda (1): ACPICA: ACPI 6.4: PPTT: add new version of subtable type 1 Hesham Almatary (1): ACPICA: Add support for Arm's MPAM ACPI table version 2 Yu Liao (2): ACPI / PPTT: Find PPTT processor node by cache id ACPI/MPAM: Adapt to Arm's MPAM ACPI table version 2 arch/arm64/kernel/mpam/mpam_device.c | 2 +- drivers/acpi/arm64/Makefile | 2 +- drivers/acpi/arm64/mpam.c | 23 +++- drivers/acpi/arm64/mpam_v2.c | 175 +++++++++++++++++++++++++++ drivers/acpi/pptt.c | 55 +++++++++ include/acpi/actbl2.h | 118 ++++++++++++++++++ include/linux/acpi.h | 5 + include/linux/arm_mpam.h | 2 +- 8 files changed, 374 insertions(+), 8 deletions(-) create mode 100644 drivers/acpi/arm64/mpam_v2.c -- 2.25.1
2 5
0 0
[PATCH v7 openEuler-22.03-LTS-SP2 0/4] support ACPI for MPAM 2.0
by Yu Liao 09 Jun '23

09 Jun '23
This patch series support ACPI for MPAM 2.0. v5: fix unused variable warning. v4: add PPTT null check to prevent NULL pointer deference. Erik Kaneda (1): ACPICA: ACPI 6.4: PPTT: add new version of subtable type 1 Hesham Almatary (1): ACPICA: Add support for Arm's MPAM ACPI table version 2 Yu Liao (2): ACPI / PPTT: Find PPTT processor node by cache id ACPI/MPAM: Adapt to Arm's MPAM ACPI table version 2 arch/arm64/kernel/mpam/mpam_device.c | 2 +- drivers/acpi/arm64/Makefile | 2 +- drivers/acpi/arm64/mpam.c | 23 +++- drivers/acpi/arm64/mpam_v2.c | 175 +++++++++++++++++++++++++++ drivers/acpi/pptt.c | 55 +++++++++ include/acpi/actbl2.h | 118 ++++++++++++++++++ include/linux/acpi.h | 5 + include/linux/arm_mpam.h | 2 +- 8 files changed, 374 insertions(+), 8 deletions(-) create mode 100644 drivers/acpi/arm64/mpam_v2.c -- 2.25.1
2 5
0 0
[PATCH v6 openEuler-22.03-LTS-SP2 0/4] support ACPI for MPAM 2.0
by Yu Liao 09 Jun '23

09 Jun '23
This patch series support ACPI for MPAM 2.0. v5: fix unused variable warning. v4: add PPTT null check to prevent NULL pointer deference. Erik Kaneda (1): ACPICA: ACPI 6.4: PPTT: add new version of subtable type 1 Hesham Almatary (1): ACPICA: Add support for Arm's MPAM ACPI table version 2 Yu Liao (2): ACPI / PPTT: Find PPTT processor node by cache id ACPI/MPAM: Adapt to Arm's MPAM ACPI table version 2 arch/arm64/kernel/mpam/mpam_device.c | 2 +- drivers/acpi/arm64/Makefile | 2 +- drivers/acpi/arm64/mpam.c | 23 +++- drivers/acpi/arm64/mpam_v2.c | 175 +++++++++++++++++++++++++++ drivers/acpi/pptt.c | 55 +++++++++ include/acpi/actbl2.h | 118 ++++++++++++++++++ include/linux/acpi.h | 5 + include/linux/arm_mpam.h | 2 +- 8 files changed, 374 insertions(+), 8 deletions(-) create mode 100644 drivers/acpi/arm64/mpam_v2.c -- 2.25.1
2 5
0 0
[PATCH v5 openEuler-22.03-LTS-SP2 0/4] ] support ACPI for MPAM 2.0
by Yu Liao 09 Jun '23

09 Jun '23
This patch series support ACPI for MPAM 2.0. v5: fix unused variable warning. v4: add PPTT null check to prevent NULL pointer deference. Erik Kaneda (1): ACPICA: ACPI 6.4: PPTT: add new version of subtable type 1 Hesham Almatary (1): ACPICA: Add support for Arm's MPAM ACPI table version 2 Yu Liao (2): ACPI / PPTT: Find PPTT processor node by cache id ACPI/MPAM: Adapt to Arm's MPAM ACPI table version 2 arch/arm64/kernel/mpam/mpam_device.c | 2 +- drivers/acpi/arm64/Makefile | 2 +- drivers/acpi/arm64/mpam.c | 23 +++- drivers/acpi/arm64/mpam_v2.c | 175 +++++++++++++++++++++++++++ drivers/acpi/pptt.c | 55 +++++++++ include/acpi/actbl2.h | 118 ++++++++++++++++++ include/linux/acpi.h | 5 + include/linux/arm_mpam.h | 2 +- 8 files changed, 374 insertions(+), 8 deletions(-) create mode 100644 drivers/acpi/arm64/mpam_v2.c -- 2.25.1
1 4
0 0
[PATCH openEuler-22.03-LTS-SP2 0/5] crypto: hisilicon - fix some reset problem
by Weili Qian 09 Jun '23

09 Jun '23
From: JiangShui Yang <yangjiangshui(a)h-partners.com> Fix some reset problem for accelerator drivers. Weili Qian (5): crypto: hisilicon/qm - flush all work before driver removed. crypto: hisilicon/hpre - enable sva error interrupt event crypto: hisilicon/qm - remove duplicate assignment and release crypto: hisilicon/qm - disable same error report before resetting crypto: hisilicon/qm - disable error report before flr drivers/crypto/hisilicon/hpre/hpre_main.c | 30 ++++- drivers/crypto/hisilicon/qm.c | 134 ++++++++++++++-------- drivers/crypto/hisilicon/sec2/sec_main.c | 24 +++- drivers/crypto/hisilicon/zip/zip_main.c | 24 +++- include/linux/hisi_acc_qm.h | 4 + 5 files changed, 157 insertions(+), 59 deletions(-) -- 2.30.0
1 5
0 0
[PATCH openEuler-22.03-LTS-SP1 0/6] Support dynamic_hugetlb on arm64 and fix some bug
by Liu Shixin 09 Jun '23

09 Jun '23
Support dynamic_hugetlb on arm64 and fix some bug. Liu Shixin (6): mm/dynamic_hugetlb: fix kabi broken when enable CONFIG_DYNAMIC_HUGETLB on arm64 mm/dynamic_hugetlb: support dynamic hugetlb on arm64 mm/dynamic_hugetlb: isolate hugepage without dissolve mm/dynamic_hugetlb: replace spin_lock with mutex_lock and fix kabi broken mm/dynamic_hugetlb: set PagePool to bad page mm/dynamic_hugetlb: fix type error of pfn in __hpool_split_gigantic_page() fs/Kconfig | 2 +- fs/hugetlbfs/inode.c | 2 +- include/linux/dynamic_hugetlb.h | 24 +++++++++++++-- include/linux/memcontrol.h | 6 +++- mm/dynamic_hugetlb.c | 54 +++++++++++++++++++++++++++------ mm/hugetlb.c | 7 +++++ 6 files changed, 80 insertions(+), 15 deletions(-) -- 2.25.1
2 7
0 0
Re: [PATCH openEuler-22.03-LTS-SP1 0/6] Support dynamic_hugetlb on arm64 and fix some bug
by Liu Shixin 09 Jun '23

09 Jun '23
On 2023/6/9 11:14, Kefeng Wang wrote: > 跟上一版本有啥区别 第一个补丁上下文有差异,其他没差别 > > > On 2023/6/9 11:59, Liu Shixin wrote: >> Support dynamic_hugetlb on arm64 and fix some bug. >> >> Liu Shixin (6): >> mm/dynamic_hugetlb: fix kabi broken when enable CONFIG_DYNAMIC_HUGETLB >> on arm64 >> mm/dynamic_hugetlb: support dynamic hugetlb on arm64 >> mm/dynamic_hugetlb: isolate hugepage without dissolve >> mm/dynamic_hugetlb: replace spin_lock with mutex_lock and fix kabi >> broken >> mm/dynamic_hugetlb: set PagePool to bad page >> mm/dynamic_hugetlb: fix type error of pfn in >> __hpool_split_gigantic_page() >> >> fs/Kconfig | 2 +- >> fs/hugetlbfs/inode.c | 2 +- >> include/linux/dynamic_hugetlb.h | 24 +++++++++++++-- >> include/linux/memcontrol.h | 6 +++- >> mm/dynamic_hugetlb.c | 54 +++++++++++++++++++++++++++------ >> mm/hugetlb.c | 7 +++++ >> 6 files changed, 80 insertions(+), 15 deletions(-) >> > . >
1 0
0 0
[openEuler/rdma-core v4] libhns: Support user to choose using UD sl or pktype to adapt MPI APP
by Chengchang Tang 09 Jun '23

09 Jun '23
From: Junxian Huang <huangjunxian6(a)hisilicon.com> driver inclusion category: bugfix bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/I7A5YM --------------------------------------------------------------- According to Annex17_RoCEv2 (A17.4.5.2), for RoCEv2 UD, a CQE should carry a flag that indicates if the received frame is an IPv4, IPv6 or RoCE packet. But currently, the values of the flag corresponding to these packet types haven't been defined yet in WC. In UCX, 'sl' in ibv_wc for UD is used as the packet type flag, and the packet type values have already been defined in the UCX patch of https://github.com/openucx/ucx/commit/ed28845b88633e65d64fce8ec880060aa61bd… Therefore, to adapt UCX, add a create flag to hnsdv_create_qp() to allow users to choose whether they use 'sl' in ibv_wc as service level or packet type for UD. For the latter, obtain and translate the packet type from CQE and fill it to 'sl' in ibv_wc. Signed-off-by: Junxian Huang <huangjunxian6(a)hisilicon.com> Signed-off-by: Haoyue Xu <xuhaoyue1(a)hisilicon.com> --- providers/hns/hns_roce_u.h | 11 +++++++++++ providers/hns/hns_roce_u_hw_v2.c | 32 +++++++++++++++++++++++++++++--- providers/hns/hns_roce_u_verbs.c | 16 ++++++++++++++++ providers/hns/hnsdv.h | 1 + 4 files changed, 57 insertions(+), 3 deletions(-) diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h index 41e9599..e3012e1 100644 --- a/providers/hns/hns_roce_u.h +++ b/providers/hns/hns_roce_u.h @@ -195,6 +195,12 @@ enum hns_roce_tc_map_mode { HNS_ROCE_TC_MAP_MODE_DSCP, }; +enum hns_roce_pktype { + HNS_ROCE_PKTYPE_ROCE_V1, + HNS_ROCE_PKTYPE_ROCE_V2_IPV6, + HNS_ROCE_PKTYPE_ROCE_V2_IPV4, +}; + struct hns_roce_db_page { struct hns_roce_db_page *prev, *next; struct hns_roce_buf buf; @@ -406,6 +412,11 @@ struct hns_roce_qp { void *cur_wqe; unsigned int rb_sq_head; /* roll back sq head */ struct hns_roce_sge_info sge_info; + + /* Just for UD. If not enabled, 'sl' in ibv_wc + * will be filled with 'port_type' in cqe. + */ + bool enable_ud_sl; }; struct hns_roce_av { diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c index 4b0ec5c..ee2fffe 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c @@ -522,9 +522,24 @@ static void handle_recv_rq_inl(struct hns_roce_v2_cqe *cqe, handle_recv_inl_data(cqe, &(cur_qp->rq_rinl_buf), wr_num, wqe_buf); } -static void parse_for_ud_qp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc) +static const uint8_t pktype_for_ud[] = { + HNS_ROCE_PKTYPE_ROCE_V1, + HNS_ROCE_PKTYPE_ROCE_V2_IPV4, + HNS_ROCE_PKTYPE_ROCE_V2_IPV6 +}; + +static void parse_for_ud_qp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, + bool enable_ud_sl) { - wc->sl = hr_reg_read(cqe, CQE_SL); + uint8_t port_type; + + if (enable_ud_sl) { + wc->sl = hr_reg_read(cqe, CQE_SL); + } else { + port_type = hr_reg_read(cqe, CQE_PORT_TYPE); + wc->sl = pktype_for_ud[port_type]; + } + wc->src_qp = hr_reg_read(cqe, CQE_RMT_QPN); wc->slid = 0; wc->wc_flags |= hr_reg_read(cqe, CQE_GRH) ? IBV_WC_GRH : 0; @@ -554,7 +569,7 @@ static int parse_cqe_for_resp(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, ++wq->tail; if (hr_qp->verbs_qp.qp.qp_type == IBV_QPT_UD) - parse_for_ud_qp(cqe, wc); + parse_for_ud_qp(cqe, wc, hr_qp->enable_ud_sl); if (hr_reg_read(cqe, CQE_CQE_INLINE)) handle_recv_cqe_inl_from_rq(cqe, hr_qp); @@ -2126,6 +2141,17 @@ static uint32_t wc_read_slid(struct ibv_cq_ex *current) static uint8_t wc_read_sl(struct ibv_cq_ex *current) { struct hns_roce_cq *cq = to_hr_cq(ibv_cq_ex_to_cq(current)); + struct hns_roce_context *ctx = to_hr_ctx(current->context); + struct hns_roce_qp *hr_qp; + uint8_t port_type; + uint32_t qpn; + + qpn = hr_reg_read(cq->cqe, CQE_LCL_QPN); + hr_qp = hns_roce_v2_find_qp(ctx, qpn); + if (hr_qp->verbs_qp.qp.qp_type == IBV_QPT_UD && !hr_qp->enable_ud_sl) { + port_type = hr_reg_read(cq->cqe, CQE_PORT_TYPE); + return pktype_for_ud[port_type]; + } return (uint8_t)hr_reg_read(cq->cqe, CQE_SL); } diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c index fa27fc1..4b641ea 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -1019,6 +1019,11 @@ static int check_qp_congest_type(struct hns_roce_context *ctx, return 0; } +enum { + HNSDV_QP_SUP_CREATE_FLAGS = HNSDV_QP_CREATE_ENABLE_DCA_MODE | + HNSDV_QP_CREATE_ENABLE_UD_SL, +}; + static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, struct hnsdv_qp_init_attr *hns_attr, struct hns_roce_cmd_flag *cmd_flag) @@ -1034,6 +1039,14 @@ static int check_hnsdv_qp_attr(struct hns_roce_context *ctx, return -EINVAL; } + if (hns_attr->comp_mask & HNSDV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS && + !check_comp_mask(hns_attr->create_flags, + HNSDV_QP_SUP_CREATE_FLAGS)) { + verbs_err(&ctx->ibv_ctx, "invalid create_flags 0x%x.\n", + hns_attr->create_flags); + return -EOPNOTSUPP; + } + ret = check_qp_congest_type(ctx, hns_attr, cmd_flag); if (ret) return ret; @@ -1685,6 +1698,9 @@ static struct ibv_qp *create_qp(struct ibv_context *ibv_ctx, qp_setup_config(attr, qp, context); + if (hns_attr && hns_attr->create_flags & HNSDV_QP_CREATE_ENABLE_UD_SL) + qp->enable_ud_sl = true; + return &qp->verbs_qp.qp; err_dwqe: diff --git a/providers/hns/hnsdv.h b/providers/hns/hnsdv.h index e15b428..365c314 100644 --- a/providers/hns/hnsdv.h +++ b/providers/hns/hnsdv.h @@ -43,6 +43,7 @@ struct ibv_context *hnsdv_open_device(struct ibv_device *device, enum hnsdv_qp_create_flags { HNSDV_QP_CREATE_ENABLE_DCA_MODE = 1 << 0, + HNSDV_QP_CREATE_ENABLE_UD_SL = 1 << 1, }; enum hnsdv_qp_congest_ctrl_type { -- 2.30.0
1 0
0 0
[PATCH v4 openEuler-22.03-LTS-SP2 0/4] support ACPI for MPAM 2.0
by Yu Liao 09 Jun '23

09 Jun '23
This patch series support ACPI for MPAM 2.0. v4: add PPTT null check to prevent NULL pointer deference. Erik Kaneda (1): ACPICA: ACPI 6.4: PPTT: add new version of subtable type 1 Hesham Almatary (1): ACPICA: Add support for Arm's MPAM ACPI table version 2 Yu Liao (2): ACPI / PPTT: Find PPTT processor node by cache id ACPI/MPAM: Adapt to Arm's MPAM ACPI table version 2 arch/arm64/kernel/mpam/mpam_device.c | 2 +- drivers/acpi/arm64/Makefile | 2 +- drivers/acpi/arm64/mpam.c | 19 ++- drivers/acpi/arm64/mpam_v2.c | 181 +++++++++++++++++++++++++++ drivers/acpi/pptt.c | 55 ++++++++ include/acpi/actbl2.h | 118 +++++++++++++++++ include/linux/acpi.h | 5 + include/linux/arm_mpam.h | 2 +- 8 files changed, 378 insertions(+), 6 deletions(-) create mode 100644 drivers/acpi/arm64/mpam_v2.c -- 2.25.1
2 5
0 0
  • ← Newer
  • 1
  • ...
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • ...
  • 25
  • Older →

HyperKitty Powered by HyperKitty