Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Sep 1997 01:06:56 -0700 (PDT)
From:      Simon Shapiro <Shimon@i-Connect.Net>
To:        Julian Elischer <julian@whistle.com>
Cc:        FreeBSD-Hackers@FreeBSD.ORG
Subject:   Re: Fast Encryption (in kernel) seeked
Message-ID:  <XFMail.970916010656.Shimon@i-Connect.Net>
In-Reply-To: <Pine.BSF.3.95.970916003201.13496B-100000@current1.whistle.com>

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

Hi Julian Elischer;  On 16-Sep-97 you wrote: 

>  To answer this question correctly,
>  We need to know more details..

Gladly :-)

>  every algorythm has its day. It depends on what the situation is.
>  
>  For example, if there will be less than 100 of these 'pointers'
>  outstanding at a time, different schemes would be used to the case where
>  there are 100000 outstanding..

Oh, somewhere in between.  A busy system may hold about 10,000 outstanding
tickets.

>  can you guarentee that  each pointer given out will be 'returned'?

Not at all.  I can guarantee that until it is returned, the pointer will be
dormant.

>  will it be returned only once?

Yup.

>  what if a process dies while owning a pointer?

Then eventually the pointer goes away.

>  when does the buffer become free?

very soon after the pointer comes back home.

>  who allocates the buffers?

malloc.

>  I have code that does all this but it's only useful to you if
>  what you want to do matches the goals of what I was designing for..
>  
>  tell me more..

This is part of the DLM.  When a remote request comes in, we allocate a
bucket (structure) to hold the remote request, send it up to a userspace
daemon.  The daemon resolves the target where the lock should be applied,
sends a packet to that host, gets the result and puts is back to the kernel.
The kernel gets the bucket, extracts from it the pointer, identifies who is
sleeping, waiting for the request to be resoved, wakes it out.  The process 
that slept wakes up and continues processing.

Two points:  

a.  This is a very inaccurate description of the remote leg in a shared lock
    processing.  It is accurate enough to give you the background, though.

b. I do NOT want this brief to be construed as a presentation of or
   introduction to the DLM.  This will come soon enough.

I want to guarantee that the cookie the kernel requestor sleeps on is
unique within the kernel address space and genuine.  To do so, I need to:

a.  Validate that it is genuine.
b.  Find, QUICKLY, the original bucket that holds the request; this is
    where the request and all its atndant pieces are.
   

---


Sincerely Yours,                               (Sent on 16-Sep-97, 00:53:14
by XF-Mail)

Simon Shapiro                                                Atlas Telecom
Senior Architect         14355 SW Allen Blvd., Suite 130 Beaverton OR 97005
Shimon@i-Connect.Net          Voice:  503.643.5559, Emergency: 503.799.2313



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970916010656.Shimon>