Hi John,

I put the relevant portion of Dan's comments inline.

| Third, once I started the updatemanagernotifier by hand, it ate a lot of
| CPU.
| 
| It seems to make from 25,000 syscalls/second to 200,000 syscalls/sec
| and is the top process on my system.  This looks like a broken call
| to poll:
| 
| # truss -c -p `pgrep update`
| ^C
| syscall               seconds   calls  errors
| ioctl                    .201   27169
| pollsys                  .192   27275
|                      --------  ------   ----
| sys totals:              .393   54444      0
| usr time:                .541
| elapsed:                3.940

> Also want to yield when checking for updates to gtk main loop to help
> reduce cpu hogging.

> http://cr.opensolaris.org/~jmr/um_notifier_3834_v1_Oct010

I took a look at this webrev, but it's unclear to me how calling
events_pending() more frequently is going to reduce the number of
pollsys syscalls.

gtk_events_pending() eventually calls g_main_context_pending (in Glib).
This function retrieves the context and then calls
g_main_context_iterate().  The context_iterate function sets up a bunch
of state, and eventually calls g_main_context_poll().  That function
actually invokes the poll syscall.

It seems like further investigation should occur before we declare this
issue closed.

Thanks,

-j
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to