Commit Graph

2436 Commits

Author SHA1 Message Date
christos 87d253a1f6 I like riastradh's kmem/pool explanation. 2014-05-27 17:05:44 +00:00
wiz c309e73942 Sort SEE ALSO. Wording improvements. Remove unnecessary Pp. 2014-05-25 15:51:26 +00:00
rmind 3da69dd68c MI IPI interface:
- Implement support for the asynchronous IPI calls.
- Rework synchronous IPI code to reuse the asynchronous mechanism.
- Add ipi(9) manual page; needs wizd(8).

Note: MD code can now provide a low level primitive for the ipi(9) and
reuse this interface instead of open-coding.  Portmasters are encouraged
to convert.  Ride 6.99.43!
2014-05-25 15:34:19 +00:00
rmind d5f4abf709 pcu(9) man page: correct PCU_REENABLE description, add pcu_discard_all(),
improve some wording.
2014-05-25 14:56:23 +00:00
wiz 76560d9cb0 End sentence with a dot. 2014-05-24 17:14:02 +00:00
christos 02cb0c6eaf Introduce a selector function to the vfs vnode iterator so that we don't
need to vget() vnodes that we are not interested at, and optimize locking
a bit. Iterator changes reviewed by Hannken (thanks), the rest of the bugs
are mine.
2014-05-24 16:34:03 +00:00
wiz e666757a15 Bump date for previous. Americanize a spelling. 2014-05-21 12:15:25 +00:00
riastradh 3e7e395e87 Miscellaneous markup, speling and grammar fix. 2014-05-20 15:31:55 +00:00
riastradh 5416492612 Split large paragraph about uobj/uoffset into a bulleted list.
Mention that uvm_map doesn't add a reference to uobj.  Evidently this
information is important, since I just wasted countless hours over
the past months investigating kernel memory corruption arising from a
failure to notice this fact.
2014-05-20 15:23:12 +00:00
wiz 4362e218b3 Consistency. 2014-05-16 08:29:18 +00:00
martin 9924ee1266 Add missing .Bl 2014-05-16 06:15:28 +00:00
rmind d67ab12c1d pcu(9):
- Remove PCU_KERNEL (hi matt!) and significantly simplify the code.
  This experimental feature was tried on ARM did not meet the expectations.
  It may be revived one day, but it should be done in a much simpler way.
- Add a message structure for xcall function, pass the LWP ower and thus
  optimise a race condition: if LWP is discarding its state on a remote CPU,
  but another LWP already did it - do not cause an unecessary re-faulting.
- Reduce the variety of flags for PCU operations (only PCU_VALID and
  PCU_REENABLE are used now), pass them only to the pcu_state_load().
- Rename pcu_used_p() to pcu_valid_p(); hopefully it is less confusing.
- pcu_save_all_on_cpu: SPL ought to be used here.
- Update and improve the pcu(9) man page; it needs wizd(8) though.
2014-05-16 00:48:41 +00:00
wiz 8673451f10 More markup. Better table width. Bump date for previous. 2014-05-15 23:59:05 +00:00
riastradh 05d529cbfb Fix typo in uvm_km(9): there is no struct vm_map_kernel. 2014-05-14 16:16:55 +00:00
martin 256a2596c6 Belatedly adapt to changes in the code. 2014-05-12 08:47:49 +00:00
riastradh a4074b16f2 Correct return type of iic_release_bus. 2014-04-03 15:39:10 +00:00
christos 1d3f7461f3 Say how big the buffer should be. 2014-03-30 23:28:14 +00:00
christos 76a09c416c fix pic_intr_string prototype 2014-03-30 00:18:09 +00:00
hannken f3cf481632 - Make VI_XLOCK, VI_CLEAN and VI_LOCKSHARE private to kern/vfs_*.c.
- Make vwait() static.
- Add  vdead_check() to check a vnode for being or becoming dead.

Discussed on tech-kern.

Welcome to 6.99.38
2014-03-24 13:42:40 +00:00
wiz 6b491007ea New sentence, new line; slight wording improvements. 2014-03-22 11:35:03 +00:00
skrll ddb1dc4a8e Bump date for previous 2014-03-22 11:25:54 +00:00
skrll 532f35877f Add mtsleep(9) and a description of how it, tsleep(9), and wakeup(9)
should all be replaced with condvar(9).

While here clear out the lock(9) reference(s) and the obsoleted example.

Based on misc/48671
2014-03-22 11:24:35 +00:00
riastradh 6cb10275d0 Merge riastradh-drm2 to HEAD. 2014-03-18 18:20:35 +00:00
hannken b349ee43ab Operations vmark(), vunmark() and vismarker() have been replaced by
vfs_vnode_iterator_*(), remove them.

Document vfs_vnode_iterator_*().

Make VI_MARKER private to vfs_vnode.c, vfs_mount.c and unfortunately
to ufs/lfs/lfs_segment.c.

Welcome to 6.99.37
2014-03-18 10:21:47 +00:00
jruoho e49918d4fb Fix a prototype. 2014-03-12 16:37:01 +00:00
hannken 72439b7dc8 Current support for iterating over mnt_vnodelist is rudimentary. Every
caller has to care about list and vnode mutexes, reference count being zero,
intermediate vnode states like VI_CLEAN, VI_XLOCK, VI_MARKER and so on.

Add an interface to iterate over a vnode list:

void vfs_vnode_iterator_init(struct mount *mp, struct vnode_iterator **marker)
void vfs_vnode_iterator_destroy(struct vnode_iterator *marker)
bool vfs_vnode_iterator_next(struct vnode_iterator *marker, struct vnode **vpp)

vfs_vnode_iterator_next() returns either "false / *vpp == NULL" when done
or "true / *vpp != NULL" to return the next referenced vnode from the list.

To make vrecycle() work in this environment change it to

bool vrecycle(struct vnode *vp)

where "vp" is a referenced vnode to be destroyed if this is the last reference.

Discussed on tech-kern.

Welcome to 6.99.34
2014-03-05 09:37:29 +00:00
hannken 2b6ec89863 The current implementation of vn_lock() is racy. Modification of
the vnode operations vector for active vnodes is unsafe because it
is not known whether deadfs or the original file system will be
called.

- Pass down LK_RETRY to the lock operation (hint for deadfs only).

- Change deadfs lock operation to return ENOENT if LK_RETRY is unset.

- Change all other lock operations to check for dead vnode once
  the vnode is locked and unlock and return ENOENT in this case.

With these changes in place vnode lock operations will never succeed
after vclean() has marked the vnode as VI_XLOCK and before vclean()
has changed the operations vector.

Adresses PR kern/37706 (Forced unmount of file systems is unsafe)

Discussed on tech-kern.

Welcome to 6.99.33
2014-02-27 16:51:37 +00:00
wiz e917ca9ede Use more markup. Add "flag" in a sentence. 2014-02-22 11:28:18 +00:00
wiz be49b9a869 Mark up NULL with Dv. 2014-02-22 11:08:05 +00:00
hannken 6935b8d9a0 Update arguments of vrecycle(), description of getnewvnode() and
the vnode flags.
2014-02-22 10:08:12 +00:00
hannken 8a81f374a4 Update the description of vfs_busy() and vfs_unbusy(). 2014-02-22 10:05:54 +00:00
wiz 0ccfefc58a Mark up author name with An. 2014-02-07 16:57:05 +00:00
hannken 97834f7ba0 Change vnode operation lookup to return the resulting vnode *vpp unlocked.
Change cache_lookup() to return an unlocked vnode.

Discussed on tech-kern@

Welcome to 6.99.31
2014-02-07 15:29:20 +00:00
skrll 3468e012de Fix eraseo from yesterday 2014-01-23 16:35:20 +00:00
hannken 04c776e5c8 Change vnode operations create, mknod, mkdir and symlink to return
the resulting vnode *vpp unlocked.

Discussed on tech-kern@

Welcome to 6.99.30
2014-01-23 10:13:55 +00:00
skrll deae578450 Update a little (don't trust myself to update anymore). Fix a macro
problem while I'm here.
2014-01-22 23:43:13 +00:00
hannken 1139274440 Change vnode operations create, mknod, mkdir and symlink to keep the
directory node dvp locked on return.

Discussed on tech-kern@

Welcome to 6.99.29
2014-01-17 10:55:01 +00:00
njoly 32806908ee Kill one more trailing space in function argument. 2014-01-06 14:57:10 +00:00
njoly fa8cf4e111 Remove extra trailing spaces in functions arguments. 2014-01-06 13:59:00 +00:00
wiz d778b71bd0 New sentence, new line. 2014-01-04 15:41:59 +00:00
wiz 2903717cc7 Sort sections. 2014-01-04 15:40:25 +00:00
pgoyette 2a3b433915 Clear up documentation for crypto_unregister() vs crypto_unregister_all()
since there is no definition of CRYPTO_ALGORITHM_ALL!

XXX The description of the arguments for crypto_register() needs further
updates, too, but that will be left for another day.
2013-12-31 01:55:05 +00:00
rmind d23bbd30da Update xcall(9). 2013-11-26 20:48:25 +00:00
rmind 86e1c41ade Mention kmem_intr(9) routines. 2013-11-26 20:47:26 +00:00
jruoho de32156f36 Don't be so pessimistic. 2013-11-20 18:13:16 +00:00
msaitoh 06a7717d3b Remove extra period. 2013-10-30 04:16:44 +00:00
hannken 65b1f85ab6 Vnode API cleanup pass 1.
- Make these defines and functions private to vfs_vnode.c:

  VC_MASK, VC_LOCK, DOCLOSE, VI_IANCTREDO and VI_INACTNOW
  vclean() and vrelel()

- Remove the long time unused lwp argument from vrecycle().

- Remove vtryget(), it is responsible for ugly hacks and doesn't
  look that effective.

Presented on tech-kern.

Welcome to 6.99.25
2013-10-29 09:53:51 +00:00
gson 6060a7c9d9 Don't capitalize "it" in the middle of a sentence. 2013-10-17 13:17:50 +00:00
skrll 8225e7146f s/the the/the/
Bump date.
2013-09-26 16:18:52 +00:00
rmind c19ced7da2 G/C npf_ncode(9) 2013-09-19 17:29:06 +00:00