[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Freeipmi-devel] Re: libfreipmi: Locking and Synchronization
From: |
Anand Babu |
Subject: |
Re: [Freeipmi-devel] Re: libfreipmi: Locking and Synchronization |
Date: |
Wed, 31 Mar 2004 16:32:15 -0800 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) |
,----
| Well here's the culprit. Automake is installing
| /var/lock/libfreeipmi/ipckey in a different directory than
| everything else.
|
| /bin/sh ./mkinstalldirs /var/lock/libfreeipmi
| /usr/bin/install -c -m 644 ipckey /var/lock/libfreeipmi/ipckey
| /bin/sh ./mkinstalldirs /var/tmp/libfreeipmi-0.0.0/usr/share/doc/libfreeipmi
| /usr/bin/install -c -m 644 ChangeLog
| /var/tmp/libfreeipmi-0.0.0/usr/share/doc/libfreeipmi/ChangeLog
| /usr/bin/install -c -m 644 INSTALL
| /var/tmp/libfreeipmi-0.0.0/usr/share/doc/libfreeipmi/INSTALL
| /usr/bin/install -c -m 644 README
| /var/tmp/libfreeipmi-0.0.0/usr/share/doc/libfreeipmi/README
| /usr/bin/install -c -m 644 AUTHORS
| /var/tmp/libfreeipmi-0.0.0/usr/share/doc/libfreeipmi/AUTHORS
| /usr/bin/install -c -m 644 TODO
| /var/tmp/libfreeipmi-0.0.0/usr/share/doc/libfreeipmi/TODO
| /usr/bin/install -c -m 644 BUGS
| /var/tmp/libfreeipmi-0.0.0/usr/share/doc/libfreeipmi/BUGS
`----
It was done on purpose. Because we allow multiple installations of
libfreeipmi and all of them should refer to a unique global shared
IPC_KEY file.
-ab
----- Original Message -----
From: Albert Chu <address@hidden>
Date: Wednesday, March 31, 2004 1:06 pm
Subject: [Freeipmi-devel] Re: libfreipmi: Locking and Synchronization
> address@hidden fish-0.0.0]$ /usr/sbin/fish
> ipmi-semaphores.c: 36: ipmi_mutex_init: errno (2): expression failed
> ipmi-kcs-interface.c: 64: ipmi_kcs_io_init: errno (2): expression
> failedipmi_kcs_io_init: No such file or directory
>
> Perhaps fish should create the lockfile for you if it doesn't exist?
>
> Al
>
> --
> Albert Chu
> address@hidden
> Lawrence Livermore National Laboratory
>
> ----- Original Message -----
> From: Anand Babu <address@hidden>
> Date: Wednesday, March 31, 2004 9:14 am
> Subject: libfreipmi: Locking and Synchronization
>
> >
> > Implements mutex based on Sys V Semaphores.
> >
> > IPMI_IPCKEY
> >
> > PATH: "/var/lock/libfreeipmi/ipckey"
> > Uses ftok () and PROJ_ID to generate KEYS.
> >
> >
> > IPCKEY APIs:
> >
> > IPMI_LAN_IPCKEY ()
> > IPMI_KCS_IPCKEY ()
> > IPMI_SMIC_IPCKEY ()
> > IPMI_BT_IPCKEY ()
> > Returns 'key'.
> >
> >
> > Initialization API:
> >
> > int ipmi_mutex_init (key_t key);
> > Returns 'semid'.
> >
> >
> > Locking APIs:
> >
> > IPMI_MUTEX_LOCK(semid)
> > IPMI_MUTEX_UNLOCK(semid)
> > IPMI_MUTEX_DOWN (semid)
> > IPMI_MUTEX_UP (semid)
> > Returns 'void'
> >
> > IPMI_MUTEX_LOCK_INTERRUPTIBLE (semid)
> > IPMI_MUTEX_LOCK_ASYNC (semid)
> > IPMI_MUTEX_DOWN_INTERRUPTIBLE (semid)
> > IPMI_MUTEX_DOWN_ASYNC (semid)
> > Return '0' on success, otherwise it returns '-1' with errno
> > indicating the error. Should restart when errno is 'EAGAIN'.
> >
> > KCS Driver:
> >
> > int ipmi_kcs_get_mutex_semid (void);
> >
> > int ipmi_kcs_io_init (u_int16_t sms_io_base, unsigned long
> > sleep_usecs);
> > Initialized locking internally.
> >
> > int8_t ipmi_kcs_cmd (u_int16_t sms_io_base, u_int8_t lun, u_int8_t
> > fn, fiid_obj_t obj_cmd_rq, fiid_template_t
> > tmpl_cmd_rq, fiid_obj_t obj_cmd_rs, fiid_template_t
> > tmpl_cmd_rs);
> > Locking handled internally. Handles BMC transaction - write and
> > read.
> >
> > int8_t ipmi_kcs_cmd_interruptible (u_int16_t sms_io_base, u_int8_t
> > lun, u_int8_t fn, fiid_obj_t obj_cmd_rq, fiid_template_t
> > tmpl_cmd_rq, fiid_obj_t obj_cmd_rs, fiid_template_t
> > tmpl_cmd_rs);
> > Interruptible Locking. Should retry when errno is EAGAIN.
> > Handles BMC transaction - write and read.
> >
> >
> > Notes:
> > * Unlocking on exit or crash is handled automatically.
> > * You can use "ipcs" and "ipcrm" utilities to view and manipulate
> > these mutexes.
> >
> > --
> > _.|_
> > (_||_)
> > Free as in Freedom <www.gnu.org>
> >
>
>
>
> _______________________________________________
> Freeipmi-devel mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/freeipmi-devel
>
--
_.|_
(_||_)
Free as in Freedom <www.gnu.org>