glabel: Set G_CF_DIRECT_SEND/RECEIVE for taste consumer.

All I/O requests through the taste consumer are synchronous, done
with g_read_data() and without any locks held.  It makes no sense
to delegate the I/O to g_down/g_up threads.

This removes many of context switches during disk retaste.

MFC after:	2 weeks
This commit is contained in:
Alexander Motin 2022-01-28 14:22:41 -05:00
parent ffc1cc95e7
commit 29998bf2ac

View File

@ -402,6 +402,7 @@ g_label_taste(struct g_class *mp, struct g_provider *pp, int flags __unused)
gp->access = g_label_access_taste; gp->access = g_label_access_taste;
gp->orphan = g_label_orphan_taste; gp->orphan = g_label_orphan_taste;
cp = g_new_consumer(gp); cp = g_new_consumer(gp);
cp->flags |= G_CF_DIRECT_SEND | G_CF_DIRECT_RECEIVE;
if (g_attach(cp, pp) != 0) if (g_attach(cp, pp) != 0)
goto end2; goto end2;
if (g_access(cp, 1, 0, 0) != 0) if (g_access(cp, 1, 0, 0) != 0)