* Re: [RFC PATCH 02/19] drivers/vhost: Convert to use vm_account [not found] ` <97a17a6ab7e59be4287a2a94d43bb787300476b4.1674538665.git-series.apopple@nvidia.com> @ 2023-01-24 5:55 ` Michael S. Tsirkin 0 siblings, 0 replies; 3+ messages in thread From: Michael S. Tsirkin @ 2023-01-24 5:55 UTC (permalink / raw) To: Alistair Popple Cc: daniel, kvm, jhubbard, linux-kernel, virtualization, linux-mm, netdev, mkoutny, jgg, hannes, cgroups, surenb, tjmercier On Tue, Jan 24, 2023 at 04:42:31PM +1100, Alistair Popple wrote: > diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c > index ec32f78..a31dd53 100644 > --- a/drivers/vhost/vdpa.c > +++ b/drivers/vhost/vdpa.c ... > @@ -780,6 +780,10 @@ static int vhost_vdpa_map(struct vhost_vdpa *v, struct vhost_iotlb *iotlb, > u32 asid = iotlb_to_asid(iotlb); > int r = 0; > > + if (!vdpa->use_va) > + if (vm_account_pinned(&dev->vm_account, PFN_DOWN(size))) > + return -ENOMEM; > + > r = vhost_iotlb_add_range_ctx(iotlb, iova, iova + size - 1, > pa, perm, opaque); > if (r) I suspect some error handling will have to be reworked then, no? > -- > git-series 0.9.1 _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <748338ffe4c42d86669923159fe0426808ecb04d.1674538665.git-series.apopple@nvidia.com>]
* Re: [RFC PATCH 01/19] mm: Introduce vm_account [not found] ` <748338ffe4c42d86669923159fe0426808ecb04d.1674538665.git-series.apopple@nvidia.com> @ 2023-01-24 6:29 ` Christoph Hellwig 2023-01-31 14:00 ` David Hildenbrand 1 sibling, 0 replies; 3+ messages in thread From: Christoph Hellwig @ 2023-01-24 6:29 UTC (permalink / raw) To: Alistair Popple Cc: linux-kselftest, rds-devel, daniel, kvm, linux-rdma, jhubbard, linux-fpga, linuxppc-dev, linux-kernel, virtualization, linux-mm, netdev, mkoutny, jgg, hannes, cgroups, bpf, surenb, tjmercier, io-uring > +/** > + * vm_account_init - Initialise a new struct vm_account. > + * @vm_account: pointer to uninitialised vm_account. > + * @task: task to charge against. > + * @user: user to charge against. Must be non-NULL for VM_ACCOUNT_USER. > + * @flags: flags to use when charging to vm_account. > + * > + * Initialise a new uninitialiused struct vm_account. Takes references > + * on the task/mm/user/cgroup as required although callers must ensure > + * any references passed in remain valid for the duration of this > + * call. > + */ > +void vm_account_init(struct vm_account *vm_account, struct task_struct *task, > + struct user_struct *user, enum vm_account_flags flags); kerneldoc comments are supposed to be next to the implementation, and not the declaration in the header. _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC PATCH 01/19] mm: Introduce vm_account [not found] ` <748338ffe4c42d86669923159fe0426808ecb04d.1674538665.git-series.apopple@nvidia.com> 2023-01-24 6:29 ` [RFC PATCH 01/19] mm: Introduce vm_account Christoph Hellwig @ 2023-01-31 14:00 ` David Hildenbrand 1 sibling, 0 replies; 3+ messages in thread From: David Hildenbrand @ 2023-01-31 14:00 UTC (permalink / raw) To: Alistair Popple, linux-mm, cgroups Cc: linux-kselftest, rds-devel, daniel, kvm, linux-rdma, jhubbard, linux-fpga, linuxppc-dev, linux-kernel, virtualization, netdev, mkoutny, jgg, hannes, bpf, surenb, tjmercier, io-uring On 24.01.23 06:42, Alistair Popple wrote: > Kernel drivers that pin pages should account these pages against > either user->locked_vm or mm->pinned_vm and fail the pinning if > RLIMIT_MEMLOCK is exceeded and CAP_IPC_LOCK isn't held. > > Currently drivers open-code this accounting and use various methods to > update the atomic variables and check against the limits leading to > various bugs and inconsistencies. To fix this introduce a standard > interface for charging pinned and locked memory. As this involves > taking references on kernel objects such as mm_struct or user_struct > we introduce a new vm_account struct to hold these references. Several > helper functions are then introduced to grab references and check > limits. > > As the way these limits are charged and enforced is visible to > userspace we need to be careful not to break existing applications by > charging to different counters. As a result the vm_account functions > support accounting to different counters as required. > > A future change will extend this to also account against a cgroup for > pinned pages. The term "vm_account" is misleading, no? VM_ACCOUNT is for accounting towards the commit limit .... -- Thanks, David / dhildenb _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-01-31 14:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.f52b9eb2792bccb8a9ecd6bc95055705cfe2ae03.1674538665.git-series.apopple@nvidia.com>
[not found] ` <97a17a6ab7e59be4287a2a94d43bb787300476b4.1674538665.git-series.apopple@nvidia.com>
2023-01-24 5:55 ` [RFC PATCH 02/19] drivers/vhost: Convert to use vm_account Michael S. Tsirkin
[not found] ` <748338ffe4c42d86669923159fe0426808ecb04d.1674538665.git-series.apopple@nvidia.com>
2023-01-24 6:29 ` [RFC PATCH 01/19] mm: Introduce vm_account Christoph Hellwig
2023-01-31 14:00 ` David Hildenbrand
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).