Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jul 2015 21:11:54 +0200
From:      Oliver Pinter <oliver.pinter@hardenedbsd.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        "src-committers@freebsd.org" <src-committers@freebsd.org>,  "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>,  "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r283998 - in head/sys: dev/drm dev/drm2 fs/devfs kern sys vm
Message-ID:  <CAPQ4fft0RrG1UKXyp1kvqxD-9BaTFeTYpM5LEGL=yZw7brtk8Q@mail.gmail.com>
In-Reply-To: <201506041941.t54JfGAA075455@svn.freebsd.org>
References:  <201506041941.t54JfGAA075455@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi John!

On Thu, Jun 4, 2015 at 9:41 PM, John Baldwin <jhb@freebsd.org> wrote:
> Author: jhb
> Date: Thu Jun  4 19:41:15 2015
> New Revision: 283998
> URL: https://svnweb.freebsd.org/changeset/base/283998
>
> Log:
>   Add a new file operations hook for mmap operations.  File type-specific
>   logic is now placed in the mmap hook implementation rather than requiring
>   it to be placed in sys/vm/vm_mmap.c.  This hook allows new file types to
>   support mmap() as well as potentially allowing mmap() for existing file
>   types that do not currently support any mapping.
>
>   The vm_mmap() function is now split up into two functions.  A new
>   vm_mmap_object() function handles the "back half" of vm_mmap() and accepts
>   a referenced VM object to map rather than a (handle, handle_type) tuple.
>   vm_mmap() is now reduced to converting a (handle, handle_type) tuple to a
>   a VM object and then calling vm_mmap_object() to handle the actual mapping.
>   The vm_mmap() function remains for use by other parts of the kernel
>   (e.g. device drivers and exec) but now only supports mapping vnodes,
>   character devices, and anonymous memory.
>
>   The mmap() system call invokes vm_mmap_object() directly with a NULL object
>   for anonymous mappings.  For mappings using a file descriptor, the
>   descriptors fo_mmap() hook is invoked instead.  The fo_mmap() hook is
>   responsible for performing type-specific checks and adjustments to
>   arguments as well as possibly modifying mapping parameters such as flags
>   or the object offset.  The fo_mmap() hook routines then call
>   vm_mmap_object() to handle the actual mapping.
>
>   The fo_mmap() hook is optional.  If it is not set, then fo_mmap() will
>   fail with ENODEV.  A fo_mmap() hook is implemented for regular files,
>   character devices, and shared memory objects (created via shm_open()).
>
>   While here, consistently use the VM_PROT_* constants for the vm_prot_t
>   type for the 'prot' variable passed to vm_mmap() and vm_mmap_object()
>   as well as the vm_mmap_vnode() and vm_mmap_cdev() helper routines.
>   Previously some places were using the mmap()-specific PROT_* constants
>   instead.  While this happens to work because PROT_xx == VM_PROT_xx,
>   using VM_PROT_* is more correct.
>
>   Differential Revision:        https://reviews.freebsd.org/D2658
>   Reviewed by:  alc (glanced over), kib
>   MFC after:    1 month
>   Sponsored by: Chelsio
>
> Modified:
>   head/sys/dev/drm/drm_bufs.c
>   head/sys/dev/drm2/drm_bufs.c
>   head/sys/fs/devfs/devfs_vnops.c
>   head/sys/kern/subr_uio.c
>   head/sys/kern/uipc_shm.c
>   head/sys/kern/vfs_vnops.c
>   head/sys/sys/file.h
>   head/sys/sys/mman.h
>   head/sys/vm/vm_extern.h
>   head/sys/vm/vm_mmap.c
>

> ... patch trimmed...

When plan you to MFC this change to 10-STABLE?

Thank,
Oliver

> _______________________________________________
> svn-src-head@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPQ4fft0RrG1UKXyp1kvqxD-9BaTFeTYpM5LEGL=yZw7brtk8Q>