Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Mar 2016 13:18:12 +0100
From:      =?UTF-8?Q?Gustau_P=c3=a9rez?= <gustau.perez@gmail.com>
To:        FreeBSD XEN <freebsd-xen@freebsd.org>
Subject:   Re: Porting the block-iscsi hotplug script
Message-ID:  <56E16604.2040007@gmail.com>
In-Reply-To: <alpine.OSX.2.20.1603041647160.22025@mac>
References:  <553DEB97.5000300@entel.upc.edu> <555EF542.3090002@citrix.com> <555F9B3F.1000600@entel.upc.edu> <55602512.1090702@citrix.com> <56C6FA2F.8040900@gmail.com> <56CAC8CB.8030107@gmail.com> <56CADEDA.4050007@citrix.com> <56CB0057.1060509@gmail.com> <56CB041E.1020009@citrix.com> <56CB2D90.5080809@gmail.com> <56CB34BA.6060809@citrix.com> <56CC24BD.6050609@gmail.com> <56CC32E5.5010101@citrix.com> <56CC7637.3080408@gmail.com> <56CF5668.6090605@citrix.com> <56D0091F.80408@gmail.com> <56D02863.7040100@citrix.com> <56D03D95.9090509@gmail.com> <56D04E5F.8070901@citrix.com> <56D42A28.8050701@gmail.com> <56D434FC.8030905@citrix.com> <56D57110.2060406@gmail.com> <56D587D8.6030702@citrix.com> <56D590EA.609@gmail.com> <56D591BA.4020303@gmail.com> <56D5929F.7040001@citrix.com> <56D5C722.3080205@gmail.com> <56D6B68D.8080809@citrix.com> <56D7FEFE.9050000@gmail.com> <alpine.OSX.2.20.1603041055250.20397@mac> <56D97762.7000908@gmail.com> <alpine.OSX.2.20.1603041647160.22025@mac>

next in thread | previous in thread | raw e-mail | index | archive | help


El 4/03/16 a les 16:54, Roger Pau Monné ha escrit:
> Linux already has some code to do this checking, but this also involves 
> taking a lock in order to make sure there's only one hotplug script 
> performing this check at the same time.
>
> The Linux function that performs this checking is in:
>
> http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/hotplug/Linux/block;h=2691b56951c9b82094471a141b9e0bed04abb929;hb=HEAD#l40
>
> And the caller is:
>
> http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/hotplug/Linux/block;h=2691b56951c9b82094471a141b9e0bed04abb929;hb=HEAD#l275
>
> If you take a look, the call to check_device_sharing is protected with the 
> "block" lock.
>

   Hi Roger,

   today I got time for that and there's something in
tools/hotplug/Linux/locking.sh I don't understand. There's an array
(_lockdict) which seems to be used to keep track of the locks. But I
have a few concerns:

 1. Where are those values kept? I mean, the _lockdict array seems to be
    used in _setlockfd() function to search if the lock is already used.
    Then it searches for the lock and used it if found, If it's not
    found a new lock is attached, if there's a lock previously freed in
    a position < ${#_lockdict} that $i position is used. But it remains
    alive just during the execution of the hotplug script and thus Id
    say does locks are per process, right?
 2. This is not related to xen nor xl, but perhaps someone may come with
    a solution. In sh I think I don't have arrays, does anyone know a
    solution for that? I mean, perhaps it would be possible to simulate
    them.

   The second one may be solved by depending on bash, but I think that
would be overkill IMHO.

   Best,

   Gustau

> .




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56E16604.2040007>