[clfswm-devel] clfswm in different environments

Philippe Brochard pbrochard at common-lisp.net
Fri Feb 25 16:02:07 UTC 2011


Desmond O. Chang writes:

> On Tue, Feb 22, 2011 at 20:11, Philippe Brochard
> <pbrochard at common-lisp.net> wrote:
>> Maybe you have to clear all .fas and .lib files built with the old
>> clisp. You may have to do the same with the directory ~/.cache/common-lisp/...
>> before building clx and clfswm.
>> In all cases, when something goes wrong with CLX, start with a fresh
>> source directory and clear your cache.
>
> I think I know why.  The fas files compiled with new clx cannot be
> used with portable clx and vice versa.  Is it a bug?
>
Yes that's right. And it's even worse with a mix between ecl and clisp
because they share the same .fas extension but the file format is
completely different.
And I don't think it's a bug. More a lose of feature. It's just that
asdf can't know when you've changed your implementation. We can't even
know which clx we are using while clisp is running. So clear your cache
each time you change your clx.

>> SBCL takes a lot more memory than clisp. _Maybe_ you have some swap
>> problems. Can you search the cpu and memory used by clfswm with sbcl?
>
> I use 'ps -eo pid,%cpu,%mem,rsz,cmd|grep sbcl' to get the following
>
> # after startup
>  1729  4.7  6.7 33972 sbcl --eval (asdf:load-system :clfswm) --eval
> (clfswm:main) --eval (quit)
> # after freezing
>  1729  1.9  8.5 43176 sbcl --eval (asdf:load-system :clfswm) --eval
> (clfswm:main) --eval (quit)
>
I got this on my box with sbcl:
# After startup
15462 12.3  2.1 42936 /home/phil/Lisp/local/sbcl-1.0.46/local/bin/sbcl --core /home/phil/Lisp/local/build/sbcl-clx-cffi.core --load load.lisp
# After 10 minutes
15462  1.3  2.3 47760 /home/phil/Lisp/local/sbcl-1.0.46/local/bin/sbcl --core /home/phil/Lisp/local/build/sbcl-clx-cffi.core --load load.lisp

With clisp-2.49/portable-clx:
# At startup
16153 15.3  0.4  9016 /usr/lib/clisp-2.49/base/lisp.run -B /usr/lib/clisp-2.49 -M /usr/lib/clisp-2.49/base/lispinit.mem -N /usr/share/locale load.lisp
# After 5 minutes
16153  1.4  0.4  9016 /usr/lib/clisp-2.49/base/lisp.run -B
/usr/lib/clisp-2.49 -M /usr/lib/clisp-2.49/base/lispinit.mem -N /usr/share/locale loa

With cmucl and its clx:
# At startup
18234 14.7  1.6 32508 /usr/lib/cmucl/bin/lisp -load load.lisp
# After 5 minutes
18234  3.3  1.6 33300 /usr/lib/cmucl/bin/lisp -load load.lisp

And with my currently running clfswm session clisp-2.49/portable-clx
(I've added a time parameter)
3743  0.4  0.5 11532    01:46:19 /home/phil/.cache/clfswm//clfswm-3355498365.core --

The conclusion I can find is that I see sbcl is using more memory on
your box than on mine (don't know if this is relevant) but the cpu usage
is better on your box.
Maybe you can have more instantaneous informations with top.
And clisp is surely a better option for you.
How do you see that clfswm is freezing? If this is when you move a frame
or a window, the freeze maybe normal as this is a cpu intensive
action. Maybe the gc comes in action (maybe something consing to
mush). I'll take a look. 

>> Also, Flash is known to use 100% of the cpu.
>> What hardware are you running clfswm on?
>
> # lshw -short
> H/W path               Device       Class       Description
> ===========================================================
>                                     system      HP 520 Notebook
> PC(GH632AA#AB2) (GH632AA#AB2)
> /0                                  bus         30D5
> /0/0                                memory      128KiB BIOS
> /0/4                                processor   Genuine Intel(R) CPU
>         T2050  @ 1.60GHz
> /0/4/5                              memory      64KiB L1 cache
> /0/4/6                              memory      2MiB L2 cache
> /0/4/0.1                            processor   Logical CPU
> /0/4/0.2                            processor   Logical CPU
> /0/a                                memory      512MiB System Memory
> /0/a/0                              memory      512MiB SODIMM DDR2
> Synchronous 667 MHz (1.5 ns)
> /0/a/1                              memory      SODIMM DDR2 Synchronous [empty]
> /0/100                              bridge      Mobile 945GM/PM/GMS,
> 943/940GML and 945GT Express Memory Controller Hub
> /0/100/2                            display     Mobile 945GM/GMS,
> 943/940GML Express Integrated Graphics Controller
> /0/100/2.1                          display     Mobile 945GM/GMS/GME,
> 943/940GML Express Integrated Graphics Controller
> /0/100/1b                           multimedia  N10/ICH 7 Family High
> Definition Audio Controller
> /0/100/1c                           bridge      N10/ICH 7 Family PCI
> Express Port 1
> /0/100/1c.1                         bridge      N10/ICH 7 Family PCI
> Express Port 2
> /0/100/1c.1/0          wlan0        network     PRO/Wireless 3945ABG
> [Golan] Network Connection
> /0/100/1d                           bus         N10/ICH 7 Family USB
> UHCI Controller #1
> /0/100/1d.7                         bus         N10/ICH 7 Family USB2
> EHCI Controller
> /0/100/1e                           bridge      82801 Mobile PCI Bridge
> /0/100/1e/6                         bridge      CB1410 Cardbus Controller
> /0/100/1e/8            eth0         network     82562ET/EZ/GT/GZ -
> PRO/100 VE (LOM) Ethernet Controller Mobile
> /0/100/1f                           bridge      82801GBM (ICH7-M) LPC
> Interface Bridge
> /0/100/1f.1            scsi4        storage     82801G (ICH7 Family)
> IDE Controller
> /0/100/1f.1/0.0.0      /dev/cdrom1  disk        RW/DVD GCC-C10N
> /0/100/1f.2            scsi0        storage     82801GBM/GHM (ICH7
> Family) SATA AHCI Controller
> /0/100/1f.2/0.0.0      /dev/sda     disk        80GB Hitachi HTS54168
> /0/100/1f.2/0.0.0/1    /dev/sda1    volume      6196MiB Linux
> filesystem partition
> /0/100/1f.2/0.0.0/2    /dev/sda2    volume      68GiB Extended partition
> /0/100/1f.2/0.0.0/2/5  /dev/sda5    volume      1427MiB Linux swap /
> Solaris partition
> /0/100/1f.2/0.0.0/2/6  /dev/sda6    volume      67GiB Linux filesystem partition
>
You can compare with my box:

H/W path         Device      Class       Description
====================================================
                             system      HP Compaq 6730b (GW687AV) (GW687AV)
/0                           bus         30DD
/0/9                         memory      64KiB BIOS
/0/0                         processor   Celeron(R) Dual-Core CPU       T3000  @ 1.80GHz
/0/0/1                       memory      1MiB L2 cache
/0/0/3                       memory      32KiB L1 cache
/0/0/0.1                     processor   Logical CPU
/0/0/0.2                     processor   Logical CPU
/0/2                         memory      32KiB L1 cache
/0/4                         memory      2GiB System Memory
/0/4/0                       memory      2GiB SODIMM DDR2 Synchronous 800 MHz (1.2 ns)
/0/4/1                       memory      SODIMM [empty]
/0/100                       bridge      Mobile 4 Series Chipset Memory Controller Hub
/0/100/2                     display     Mobile 4 Series Chipset Integrated Graphics Controller
/0/100/2.1                   display     Mobile 4 Series Chipset Integrated Graphics Controller
/0/100/1a                    bus         82801I (ICH9 Family) USB UHCI Controller #4
/0/100/1a.1                  bus         82801I (ICH9 Family) USB UHCI Controller #5
/0/100/1a.2                  bus         82801I (ICH9 Family) USB UHCI Controller #6
/0/100/1a.7                  bus         82801I (ICH9 Family) USB2 EHCI Controller #2
/0/100/1b                    multimedia  82801I (ICH9 Family) HD Audio Controller
/0/100/1c                    bridge      82801I (ICH9 Family) PCI Express Port 1
/0/100/1c.1                  bridge      82801I (ICH9 Family) PCI Express Port 2
/0/100/1c.1/0                network     BCM4312 802.11b/g LP-PHY
/0/100/1c.2                  bridge      82801I (ICH9 Family) PCI Express Port 3
/0/100/1c.4                  bridge      82801I (ICH9 Family) PCI Express Port 5
/0/100/1c.5                  bridge      82801I (ICH9 Family) PCI Express Port 6
/0/100/1c.5/0    eth0        network     NetLink BCM5787M Gigabit Ethernet PCI Express
/0/100/1d                    bus         82801I (ICH9 Family) USB UHCI Controller #1
/0/100/1d.1                  bus         82801I (ICH9 Family) USB UHCI Controller #2
/0/100/1d.2                  bus         82801I (ICH9 Family) USB UHCI Controller #3
/0/100/1d.7                  bus         82801I (ICH9 Family) USB2 EHCI Controller #1
/0/100/1e                    bridge      82801 Mobile PCI Bridge
/0/100/1e/2                  bus         FW322/323
/0/100/1f                    bridge      ICH9M LPC Interface Controller
/0/100/1f.2      scsi0       storage     ICH9M/M-E SATA AHCI Controller
/0/100/1f.2/0    /dev/sda    disk        160GB Hitachi HTS54321
/0/100/1f.2/0/1  /dev/sda1   volume      58GiB Windows NTFS volume
/0/100/1f.2/0/2  /dev/sda2   volume      36GiB Windows NTFS volume
/0/100/1f.2/0/3  /dev/sda3   volume      10GiB EXT4 volume
/0/100/1f.2/0/4  /dev/sda4   volume      44GiB EXT3 volume
/0/100/1f.2/1    /dev/cdrom  disk        DVD RW AD-7561S
/0/1             scsi6       storage     
/0/1/0.0.0       /dev/sdb    disk        320GB SCSI Disk
/0/1/0.0.0/1     /dev/sdb1   volume      39GiB EXT4 volume
/0/1/0.0.0/2     /dev/sdb2   volume      2000MiB Linux swap volume
/0/1/0.0.0/4     /dev/sdb4   volume      256GiB Extended partition
/0/1/0.0.0/4/5   /dev/sdb5   volume      65GiB Linux filesystem partition
/0/1/0.0.0/4/6   /dev/sdb6   volume      191GiB HPFS/NTFS partition
/1                           power       TD06055
/2               wlan0       network     Wireless interface

I've a box with the double of cpu and a lot more memory. But I always
disable flash except when I really need it (vlc is good for viewing
youtube). clisp is surely a better option for you. You can also try
cmucl which use less memory.

>> This one is because you haven't enabled local connections on your X
>> server. Add a line with 'xhost local:local' in your ~/.xsession or
>> .xinitrc or .Xclients.
>
> Why does clisp require this with portable clx but sbcl not?
>
Don't know. cmucl has solved this but the open-clx-display is not
portable.

http://www.cons.org/cmucl/doc/clx-authorization.html




More information about the clfswm-devel mailing list