Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Jan 2003 10:42:11 -0500
From:      Hiten Pandya <hiten@unixdaemons.com>
To:        Robert Watson <rwatson@FreeBSD.ORG>
Cc:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/share/man/man9 malloc.9 mbuf.9
Message-ID:  <20030118154211.GB96568@unixdaemons.com>
In-Reply-To: <200301180325.h0I3PeQ2012280@repoman.freebsd.org>
References:  <200301180325.h0I3PeQ2012280@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 17, 2003 at 07:25:40PM -0800, Robert Watson wrote the words in effect of:
> rwatson     2003/01/17 19:25:40 PST
> 
>   Modified files:
>     share/man/man9       malloc.9 mbuf.9 
>   Log:
>   Caution programmers not to confuse M_DONTWAIT with M_NOWAIT.  They
>   are not the same.
>   
>   Suggested by:   Hiten Pandya <hiten@unixdaemons.com>

Thanks!

It would also be good, if the inline patch was committed too;  there was
a discussion about this some weeks ago, and Alfred wanted it documented.
It will be appreciated.

Cheers.

Index: malloc.9
===================================================================
RCS file: /home/ncvs/src/share/man/man9/malloc.9,v
retrieving revision 1.24
diff -u -r1.24 malloc.9
--- malloc.9	2002/12/24 16:52:31	1.24
+++ malloc.9	2003/01/04 08:24:00
@@ -229,8 +229,25 @@
 For larger requests, one or more pages is allocated.
 While it should not be relied upon, this information may be useful for
 optimizing the efficiency of memory use.
+.Pp
+Malloc flags documented above should
+.Em NOT
+be used with
+.Xr mbuf 9
+routines; It is a very common mis-understanding, and can have
+undesired results.
+.Pp
+Any calls to
+.Fn malloc
+or
+.Fn free
+when holding a
+.Xr vnode 9
+interlock, will cause a LOR (Lock Order Reversal) due to the
+interwining of VM Objects and Vnodes.
 .Sh SEE ALSO
 .Xr vmstat 8
+.Xr vnode 9
 .Sh DIAGNOSTICS
 A kernel compiled with the
 .Dv DIAGNOSTIC
Index: vnode.9
===================================================================
RCS file: /home/ncvs/src/share/man/man9/vnode.9,v
retrieving revision 1.21
diff -u -r1.21 vnode.9
--- vnode.9	2002/12/12 17:25:58	1.21
+++ vnode.9	2003/01/04 08:24:01
@@ -45,18 +45,6 @@
 enum vtype	{ VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VFIFO, VBAD };
 
 /*
- * Vnode tag types.
- * These are for the benefit of external programs only (e.g., pstat)
- * and should NEVER be inspected by the kernel.
- */
-enum vtagtype	{
-	VT_NON, VT_UFS, VT_NFS, VT_UNUSED, VT_PC, VT_LFS, VT_LOFS, VT_FDESC,
-	VT_PORTAL, VT_NULL, VT_UMAP, VT_KERNFS, VT_PROCFS, VT_AFS, VT_ISOFS,
-	VT_UNION, VT_MSDOSFS, VT_DEVFS, VT_TFS, VT_VFS, VT_CODA, VT_NTFS,
-	VT_HPFS, VT_NWFS, VT_PSEUDOFS
-};
-
-/*
  * Each underlying file system allocates its own private area and hangs
  * it from v_data.  If non-null, this area is freed in getnewvnode().
  */
@@ -105,7 +93,7 @@
 	struct vm_object *v_object;		/* Place to store VM object */
 	struct	simplelock v_interlock;		/* lock on usecount and flag */
 	struct	lock *v_vnlock;			/* used for non-locking fs's */
-	enum	vtagtype v_tag;			/* type of underlying data */
+	const	char *v_tag;			/* type of underlying data */
 	void 	*v_data;			/* private data for fs */
 	LIST_HEAD(, namecache) v_cache_src;	/* Cache entries from us */
 	TAILQ_HEAD(, namecache) v_cache_dst;	/* Cache entries to us */
@@ -241,7 +229,7 @@
 .It Dv VBAD
 An old style bad sector map
 .El
-.Sh NOTES
+.Sh IMPLEMENTATION NOTES
 VFIFO uses the "struct fileops" from
 .Pa /sys/kern/sys_pipe.c .
 VSOCK uses the "struct fileops" from
@@ -252,7 +240,17 @@
 The VFIFO/VSOCK code, which is why "struct fileops" is used at all, is
 an artifact of an incomplete integration of the VFS code into the
 kernel.
+.Pp
+Calls to
+.Xr malloc 9
+or
+.Xr free 9
+when holding a
+.Nm
+interlock, will cause a LOR (Lock Order Reversal) due to the
+interwining of VM Objects and Vnodes.
 .Sh SEE ALSO
+.Xr malloc 9
 .Xr VFS 9
 .Sh AUTHORS
 This man page was written by

P.S. The second patch is for removing the vtagtype information, as it is
invalid now.

-- 
Hiten Pandya (hiten@unixdaemons.com, hiten@uk.FreeBSD.org)
http://www.unixdaemons.com/~hiten/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030118154211.GB96568>