tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Removal of miscfs/syncfs



On 01 May 2015, at 14:16, Christos Zoulas <christos%astron.com@localhost> wrote:

> In article <F40DE9D8-F529-4411-9695-2D347E4DE862%eis.cs.tu-bs.de@localhost>,
> J. Hannken-Illjes <hannken%eis.cs.tu-bs.de@localhost> wrote:
>> Our miscfs/syncfs originating from the softdep import is a pseudo
>> file system with one VOP.  Its vnodes get used as a kind of marker
>> on the syncer worklist so the syncer may run lazy VFS_SYNC for
>> all mounted file systems.
>> 
>> For this to work, it creates a vnode attached to the mount point
>> with a special (syncfs) operations vector.  This concept breaks
>> some rules making it nearly is impossible to implement it with
>> the new vcache operations.
>> 
>> I propose to completely remove miscfs/syncfs and
>> 
>> - move the syncer sched_sync into kern/vfs_subr.c
>> - change the syncer to process the mountlist and VFS_SYNC as appropriate.
>> - use an API for mount points similiar to the API for vnodes.
>> 
>> Diff at http://www.netbsd.org/~hannken/rm-miscfs-syncfs-1.diff
>> 
>> Comments or objections anyone?
> 
> Have you tested its performance?

With ten mounts I got no problems.  All it adds is once per second:

  mutex_enter(&mountlist_lock);
  for (mp = TAILQ_FIRST(&mountlist); mp != NULL; mp = nmp) {
    if (NOTHING_TO_DO(mp)) {
        nmp = TAILQ_NEXT(mp, mnt_list);
        continue;
      }
  }
  mutex_exit(&mountlist_lock);


> Out of the 4 time_t tunables, two are not being used;

All tunables are used:

kern/vfs_subr.c:461:    delayx = dirdelay;
kern/vfs_subr.c:465:    delayx = metadelay;
kern/vfs_subr.c:470:    delayx = filedelay;
kern/vfs_subr.c:622:    return mp->mnt_wapbl != NULL ? metadelay : syncdelay;
kern/vfs_subr.c:847:    synced ? syncdelay : lockdelay);
miscfs/genfs/genfs_io.c:95:     vn_syncer_add_to_worklist(vp, filedelay);

> The other two are truncated to int's, why use time_t then?

Because I didn't change anything here.  As these tunables are sysctl
nodes we had to change their size breaking backwards compatibility.

--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig (Germany)



Home | Main Index | Thread Index | Old Index