public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Fenghua Yu <fenghua.yu@intel.com>
To: "Vinod Koul" <vkoul@kernel.org>, "Dave Jiang" <dave.jiang@intel.com>
Cc: dmaengine@vger.kernel.org,
	"linux-kernel" <linux-kernel@vger.kernel.org>,
	Tony Zhu <tony.zhu@intel.com>, Fenghua Yu <fenghua.yu@intel.com>
Subject: [PATCH v4 15/16] dmaengine: idxd: add pid to exported sysfs attribute for opened file
Date: Fri,  7 Apr 2023 13:31:42 -0700	[thread overview]
Message-ID: <20230407203143.2189681-16-fenghua.yu@intel.com> (raw)
In-Reply-To: <20230407203143.2189681-1-fenghua.yu@intel.com>

From: Dave Jiang <dave.jiang@intel.com>

Provide the pid of the application for the opened file. This allows the
monitor daemon to easily correlate which app opened the file and easily
kill the app by pid if that is desired action.

Tested-by: Tony Zhu <tony.zhu@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Co-developed-by: Fenghua Yu <fenghua.yu@intel.com>
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
---
 Documentation/ABI/stable/sysfs-driver-dma-idxd |  8 ++++++++
 drivers/dma/idxd/cdev.c                        | 11 +++++++++++
 2 files changed, 19 insertions(+)

diff --git a/Documentation/ABI/stable/sysfs-driver-dma-idxd b/Documentation/ABI/stable/sysfs-driver-dma-idxd
index 73ab86196a41..5d0df57f5298 100644
--- a/Documentation/ABI/stable/sysfs-driver-dma-idxd
+++ b/Documentation/ABI/stable/sysfs-driver-dma-idxd
@@ -335,3 +335,11 @@ Description:	Show the number of Completion Record (CR) faults failures that this
 		driver cannot fault in the address for the CR. Typically this is caused
 		by a bad address programmed in the submitted descriptor or a malicious
 		submitter is using bad CR address on purpose.
+
+What:		/sys/bus/dsa/devices/wq<m>.<n>/dsa<x>\!wq<m>.<n>/file<y>/pid
+Date:		Sept 14, 2022
+KernelVersion:	6.4.0
+Contact:	dmaengine@vger.kernel.org
+Description:	Show the process id of the application that opened the file. This is
+		helpful information for a monitor daemon that wants to kill the
+		application that opened the file.
diff --git a/drivers/dma/idxd/cdev.c b/drivers/dma/idxd/cdev.c
index 2fb905f2545b..ecbf67c2ad2b 100644
--- a/drivers/dma/idxd/cdev.c
+++ b/drivers/dma/idxd/cdev.c
@@ -49,6 +49,7 @@ struct idxd_user_context {
 	struct idxd_dev idxd_dev;
 	u64 counters[COUNTER_MAX];
 	int id;
+	pid_t pid;
 };
 
 static void idxd_cdev_evl_drain_pasid(struct idxd_wq *wq, u32 pasid);
@@ -78,9 +79,18 @@ static ssize_t cr_fault_failures_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(cr_fault_failures);
 
+static ssize_t pid_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+	struct idxd_user_context *ctx = dev_to_uctx(dev);
+
+	return sysfs_emit(buf, "%u\n", ctx->pid);
+}
+static DEVICE_ATTR_RO(pid);
+
 static struct attribute *cdev_file_attributes[] = {
 	&dev_attr_cr_faults.attr,
 	&dev_attr_cr_fault_failures.attr,
+	&dev_attr_pid.attr,
 	NULL
 };
 
@@ -238,6 +248,7 @@ static int idxd_cdev_open(struct inode *inode, struct file *filp)
 
 	ctx->wq = wq;
 	filp->private_data = ctx;
+	ctx->pid = current->pid;
 
 	if (device_user_pasid_enabled(idxd)) {
 		sva = iommu_sva_bind_device(dev, current->mm);
-- 
2.37.1


  parent reply	other threads:[~2023-04-07 20:32 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-07 20:31 [PATCH v4 00/16] Enable DSA 2.0 Event Log and completion record faulting features Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 01/16] dmaengine: idxd: make misc interrupt one shot Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 02/16] dmaengine: idxd: add event log size sysfs attribute Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 03/16] dmaengine: idxd: setup event log configuration Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 04/16] dmaengine: idxd: add interrupt handling for event log Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 05/16] dmanegine: idxd: add debugfs for event log dump Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 06/16] dmaengine: idxd: add per DSA wq workqueue for processing cr faults Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 07/16] dmaengine: idxd: create kmem cache for event log fault items Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 08/16] dmaengine: idxd: add idxd_copy_cr() to copy user completion record during page fault handling Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 09/16] dmaengine: idxd: process user page faults for completion record Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 10/16] dmaengine: idxd: add descs_completed field " Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 11/16] dmaengine: idxd: process batch descriptor completion record faults Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 12/16] dmaengine: idxd: add per file user counters for " Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 13/16] dmaengine: idxd: add a device to represent the file opened Fenghua Yu
2023-04-07 20:31 ` [PATCH v4 14/16] dmaengine: idxd: expose fault counters to sysfs Fenghua Yu
2023-04-07 20:31 ` Fenghua Yu [this message]
2023-04-07 20:31 ` [PATCH v4 16/16] dmaengine: idxd: add per wq PRS disable Fenghua Yu
2023-04-12 17:18 ` [PATCH v4 00/16] Enable DSA 2.0 Event Log and completion record faulting features Vinod Koul
2023-04-12 17:49   ` Fenghua Yu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230407203143.2189681-16-fenghua.yu@intel.com \
    --to=fenghua.yu@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tony.zhu@intel.com \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox