svn commit: r254138 - in head: share/man/man9 sys/amd64/amd64 sys/arm/arm sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/agp sys/dev/drm2/i915 sys/dev/drm2/ttm sys/dev/md sys/fs/fuse sys/fs...
Ulrich Spörlein
uqs at FreeBSD.org
Tue Aug 13 14:22:34 UTC 2013
On Fri, 2013-08-09 at 11:11:12 +0000, Attilio Rao wrote:
> Author: attilio
> Date: Fri Aug 9 11:11:11 2013
> New Revision: 254138
> URL: http://svnweb.freebsd.org/changeset/base/254138
>
> Log:
> The soft and hard busy mechanism rely on the vm object lock to work.
> Unify the 2 concept into a real, minimal, sxlock where the shared
> acquisition represent the soft busy and the exclusive acquisition
> represent the hard busy.
> The old VPO_WANTED mechanism becames the hard-path for this new lock
> and it becomes per-page rather than per-object.
> The vm_object lock becames an interlock for this functionality:
> it can be held in both read or write mode.
> However, if the vm_object lock is held in read mode while acquiring
> or releasing the busy state, the thread owner cannot make any
> assumption on the busy state unless it is also busying it.
>
> Also:
> - Add a new flag to directly shared busy pages while vm_page_alloc
> and vm_page_grab are being executed. This will be very helpful
> once these functions happen under a read object lock.
> - Move the swapping sleep into its own per-object flag
>
> The KPI is heavilly changed this is why the version is bumped.
> It is very likely that some VM ports users will need to change
> their own code.
>
> Sponsored by: EMC / Isilon storage division
> Discussed with: alc
> Reviewed by: jeff, kib
> Tested by: gavin, bapt (older version)
> Tested by: pho, scottl
The changes to sys/vm/vm_fault.c introduce a call to
vm_page_sleep_if_busy() where the return code is not checked. The other
5 places in the tree check the return code, please fix this here too.
It's CID 1062398, and I would encourage folks to get an account with
scan.coverity.com and have an eye on newly found defects.
Thanks!
Uli
More information about the svn-src-head
mailing list