[oi-dev] What changed between glib versions?
Joshua M. Clulow
josh at sysmgr.org
Fri Apr 1 06:53:24 UTC 2022
On Thu, 31 Mar 2022 at 18:19, Gary Mills <gary_mills at fastmail.fm> wrote:
> On Thu, Mar 31, 2022 at 04:48:04PM -0500, Gary Mills wrote:
> > Ah, that behavior makes it much more difficult to diagnose the
> > problem. Intermittent operation is not something I even considered.
> > Could there be a critical timing someplace? I don't know how you
> > would even answer that question.
>
> The only thing I can think of that occurs at a random time is signals.
> Linux signal handling is quite different from illumos signal handling.
> Both OSes can lose repeated signals.
>
> The other pecularity, although not entirely random, is that hal writes
> UTF strings to a pipe, and reads them back from the same pipe. Pipes
> also are quite different between Linux and illumos. In particular,
> illumos pipes use streams, and require a context switch before the
> packet can move along the pipe.
A few things:
- though we support STREAMS-compatible pipes, we use
a more direct fast path by default; see use of FIFOFAST
- nobody can support pipes without context switching,
pipe reads and writes requiring interaction with
the kernel, and often lead to another process, so
there are usually at least three contexts involved
Even through all of this, though, there will likely always be at least
minute differences in timing between the platforms. If the code is
correct, this will not matter.
The only way to solve this problem will be to debug exactly what's
going wrong, whether it's in glib or HAL or somewhere inbetween. Some
previous mail to the list that includes some debugging I started on in
June:
https://openindiana.org/pipermail/oi-dev/2021-June/032756.html
https://openindiana.org/pipermail/oi-dev/2021-June/032768.html
Some combination of DTrace, truss, and mdb, is likely to help -- along
with source inspection. You could conceivably even add or enable more
debug logging to HAL or to glib or to both and rebuild. I don't have
an OI workstation myself, which is why I haven't spent more time on
this. If you decide to dig in, though, either myself or someone in
#illumos IRC or on the illumos mailing list will likely be able to
help with pointers once you have questions.
Cheers.
--
Joshua M. Clulow
http://blog.sysmgr.org
More information about the oi-dev
mailing list