[Barrelfish-users] System V Shared memory

Gerd Zellweger zgerd at student.ethz.ch
Thu Feb 16 23:51:02 CET 2012

Hi Andrew and Zeus,

I have written a replacement for the nameserver a couple of days ago. 
However, over time additional functionality has been added to chips to 
write implementations for posixcompat: A capability storage and a 
distributed semaphore API. The error Zeus is seeing right now seems 
related to the capability storage since shmget/shmat is using this piece 
of code. I have discussed this with Adrian a bit today and we're 
currently not sure if these APIs should remain in chips or if I should 
transfer these over to the new service (which would be a hack as the new 
service builds upon the SKB and the SKB does not (yet) support storage 
for capabilities).
In addition, because the ECLiPSe CLP engine (used by the SKB) uses some 
inline x86 assembler we still need chips for non-x86 architectures at 
the moment. Since we can't get completely rid of chips yet I made a 
patch that should fix the send handlers.

@Zeus: I could not reproduce your bug on my machine but the error should 
be fairly straight-forward to fix. Feedback is appreciated if this works 
for you.


On 02/16/2012 05:18 PM, Baumann Andrew wrote:
> Hi Zeus,
> This is an implementation bug in chips: it doesn't handle the TX_BUSY 
> error (and gets away with it, because most clients use chips only as 
> an RPC service). It would be possible to fix that by queuing up the 
> sends, as we do in other services, but I'm not in a hurry to do that 
> as I believe there was a masters project at ETH to replace chips with 
> something better... perhaps someone can fill us in on the status of 
> this, and if there are any merge plans?
> Andrew
> *From:*Zeus Gómez Marmolejo [mailto:zeus.gomez at bsc.es]
> *Sent:* Thursday, 16 February, 2012 4:50
> *To:* barrelfish-users at lists.inf.ethz.ch
> *Subject:* [Barrelfish-users] System V Shared memory
> Hi all,
> I have been trying the shmget() shmat() functions present in the 
> posixcompat library, which are not used by any program in Barrelfish. 
> I've made two very simple programs shm_client and shm_server which 
> export a shared memory and waits for the other to write on it. I 
> attach the two programs.
> The system seems to work even on different cores, but in this case I 
> always get an error on chips forcing it to abort:
> ERROR: chips.0 in get_service_reference_handler() 
> /home/zeus/bsc/bf/usr/chips/framework.c:167
> get_service_reference_response failed
> Failure: (       flounder) Cannot queue message for transmit: queue is 
> (I removed the original assert to see the error).
> I guess the waitset has to be serviced to process the ACKs and empty 
> the queue. But, this function is being called on the event handler.
> Do you think is there an easy fix to this problem?
> Thanks,
> -- 
> Zeus Gómez Marmolejo
> Barcelona Supercomputing Center
> PhD student
> http://www.bsc.es
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120216/3e076a06/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: chips-patch.diff
Type: text/x-patch
Size: 16998 bytes
Desc: not available
Url : https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120216/3e076a06/attachment-0001.bin 

More information about the Barrelfish-users mailing list