[Announce] firmware-tools GUI now available

Michael E Brown Michael_E_Brown at dell.com
Fri Aug 24 10:26:46 CDT 2007


On Fri, Aug 24, 2007 at 05:30:09PM +0530, Charles_Rose at dell.com wrote:
> firmware-tools-devel-bounces at lists.us.dell.com wrote:
> >     I am pleased to announce that firmware-tools now has a
> > GUI tool for doing system inventory and firmware updates.
> > 
> >     The executable is called 'inventory_firmware_gui' and is
> > available in firmware-tools version 1.5.1 and higher.
> > 
> >     The GUI has been developed using Glade and pyglade. It is
> > developed on my Fedora 7 system, but should run on RHEL4/5. I
> > have not yet tested on SLES, but it should run there as well.
> > The entire GUI weighs in at less than 1000 lines of code, which
> > 
> >     I intend to send a note to linux-poweredge for this later this
> > week. Please bang on it and let me know if you see any issues.
> > 
> > Known bugs:
> >     -- the "About" dialog box crashes on RHEL4
> >     -- if you click the 'close' decoration before the window
> > has fully initialized, it crashes.
> > 
> > Future enhancements:
> >     -- add status icons to the update firmware status page
> >     -- add a spinner to the update status page so you can watch
> > progress 
> >     -- add more colors to the main inventory page so you can
> > see which devices are out of date.
> >     -- others as requested/suggested.
> 
> I did some testing on RHEL4 and RHEL5:

First of all, a *HUGE* thanks for doing this. This is greatly
appreciated.

> RHEL4: I was able to flash the system's BIOS with
> inventory_firmware_gui. No problems so far.

Yay. (So this means that it works for somebody besides me and my four
machines.)  :)

> RHEL5: I get 104% CPU usage during "Performing system inventory". After
> the inventory, the CPU utilization returns to normal:

Ok. Can you take a look at this? I'm probably missing something.

Inventory is started in a background thread so that the GUI will be
responsive while that happens. I use the "runLongProcess()" function
(line 711 in current inventory_firmware_gui code).

This function and the following class spawn a thread to run the
function, and then basically just wait for the function to finish while
repainting the GUI. I probably need to call a different kind of yield in
my gui repainting loop.

In the meantime, I've added a couple of tiny sleep(0.01) calls, which
should keep it from spinning at 100% until I can figure it out.

> Cpu2  : 70.1%us, 29.9%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,
> 0.0%st
> 
>   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
> 
> 13887 root      19   0  383m  25m  12m R  103  0.3   0:03.50
> inventory_firmw
> 
> "Performing system inventory" takes about 30s.
> 
> Another interesting observation was when I strace'd
> inventory_firmware_gui, I noticed that the CPU utilization was less than
> 10% for inventory_firmware_gui, and "performing system inventory" took
> 6s (5 times faster than normal).

Ok. The GUI repaint loop probably is taking up time causing the
inventory to be slow.

--
Michael




More information about the firmware-tools-devel mailing list