Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Gorka Guardiola
On Fri, Oct 29, 2010 at 7:37 AM, Bruce Ellis bruce.el...@gmail.com wrote:
 No! Open on an exclusive file has the same races. No problems on

I said I agree it is a problem. Yes, there is a race... Froggie?
A lily-white duck come and swallowed him up,..



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
What you are saying is that the problem could be something like:

- Tclunk
(do not wait for response)
- Topen (the file is exclusive)

no, because what actually happens is closer to
A: Topen
...
queue request to *another process* to send Tclunk
...
A: Topen

leading to either case 1
A: Topen
B: Tclunk
A: Topen

or case 2
A: Topen
A: Topen
B: Tclunk

depending on the scheduling of the two processes A and B

introducing that other process introduces a new race, that simply did not exist 
before, because
that other process didn't exist before. you always got case 1.

and indeed, with the test i ran on the modified system usually it gets case 1
because of timing, but eventually a case 2 shows up and the second open fails.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
my froggie has been running for four years 24/7. if you haven't read
the BLTJ then styx runs over the PCI ... 4  ixp1200s. asynch clunks.
the only problem is it's 10 times quicker.

the only server that i saw at the labs that had Rclunk semantics was
pb's video magic which i i didn't need.  nemo throws a spaniard in the
works. ozi2 aka casella is not ref counted but swiftly sweeps.

brucee

On Fri, Oct 29, 2010 at 6:44 PM, Gorka Guardiola pau...@gmail.com wrote:
 On Fri, Oct 29, 2010 at 7:37 AM, Bruce Ellis bruce.el...@gmail.com wrote:
 No! Open on an exclusive file has the same races. No problems on

 I said I agree it is a problem. Yes, there is a race... Froggie?
 A lily-white duck come and swallowed him up,..





Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
i don't believe that is possible in my implementation. will check.

brucee

On Fri, Oct 29, 2010 at 8:01 PM, Charles Forsyth fors...@terzarima.net wrote:
What you are saying is that the problem could be something like:

- Tclunk
(do not wait for response)
- Topen (the file is exclusive)

 no, because what actually happens is closer to
        A: Topen
        ...
        queue request to *another process* to send Tclunk
        ...
        A: Topen

 leading to either case 1
        A: Topen
        B: Tclunk
        A: Topen

 or case 2
        A: Topen
        A: Topen
        B: Tclunk

 depending on the scheduling of the two processes A and B

 introducing that other process introduces a new race, that simply did not 
 exist before, because
 that other process didn't exist before. you always got case 1.

 and indeed, with the test i ran on the modified system usually it gets case 1
 because of timing, but eventually a case 2 shows up and the second open fails.





Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Gorka Guardiola
On Fri, Oct 29, 2010 at 11:01 AM, Charles Forsyth fors...@terzarima.net wrote:
What you are saying is that the problem could be something like:

- Tclunk
(do not wait for response)
- Topen (the file is exclusive)

 no, because what actually happens is closer to
        A: Topen
        ...
        queue request to *another process* to send Tclunk
        ...
        A: Topen

 leading to either case 1
        A: Topen
        B: Tclunk
        A: Topen

 or case 2
        A: Topen
        A: Topen
        B: Tclunk

 depending on the scheduling of the two processes A and B

 introducing that other process introduces a new race, that simply did not 
 exist before, because
 that other process didn't exist before. you always got case 1.

 and indeed, with the test i ran on the modified system usually it gets case 1
 because of timing, but eventually a case 2 shows up and the second open fails.



That is why I said, (my second message in the thread) that at least
you should send the Tclunks synchronously.
Meaning the close system call sends the Tclunk
and then fires another thread/writes down in a list for another thread
for the fid to be recollected when the
answer comes asynchronously.
This prevents the fid being reused and simultaneously tries
to keep the operations in the order the client intended.
Still there are no guarantees, because the
messages can be reordered in the server but...
Still, it does not work in general (the server...) and I thought it was not
profitable enough to be worth the hassle, but then...

 my froggie has been running for four years 24/7. if you haven't read
 the BLTJ then styx runs over the PCI ... 4  ixp1200s. asynch clunks.
 the only problem is it's 10 times quicker.

I haven´t read the Journal, I thought it was referring to the Dylan´s song
putting froggie as an archetype of decency. You are talking about this?:
http://onlinelibrary.wiley.com/doi/10.1002/bltj.1/pdf

Do you do completely asynch clunks or just the wait for the response?.
10 times?, that is some latency. Can you break up exactly where the gain
comes from?.

G.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
right journal. i'll do some unusual tests and report on the results.

wing-commander has to awake early to attend his mother's 80th birthday party.

back to you on this one.

brucee

On Fri, Oct 29, 2010 at 8:45 PM, Gorka Guardiola pau...@gmail.com wrote:
 On Fri, Oct 29, 2010 at 11:01 AM, Charles Forsyth fors...@terzarima.net 
 wrote:
What you are saying is that the problem could be something like:

- Tclunk
(do not wait for response)
- Topen (the file is exclusive)

 no, because what actually happens is closer to
        A: Topen
        ...
        queue request to *another process* to send Tclunk
        ...
        A: Topen

 leading to either case 1
        A: Topen
        B: Tclunk
        A: Topen

 or case 2
        A: Topen
        A: Topen
        B: Tclunk

 depending on the scheduling of the two processes A and B

 introducing that other process introduces a new race, that simply did not 
 exist before, because
 that other process didn't exist before. you always got case 1.

 and indeed, with the test i ran on the modified system usually it gets case 1
 because of timing, but eventually a case 2 shows up and the second open 
 fails.



 That is why I said, (my second message in the thread) that at least
 you should send the Tclunks synchronously.
 Meaning the close system call sends the Tclunk
 and then fires another thread/writes down in a list for another thread
 for the fid to be recollected when the
 answer comes asynchronously.
 This prevents the fid being reused and simultaneously tries
 to keep the operations in the order the client intended.
 Still there are no guarantees, because the
 messages can be reordered in the server but...
 Still, it does not work in general (the server...) and I thought it was not
 profitable enough to be worth the hassle, but then...

 my froggie has been running for four years 24/7. if you haven't read
 the BLTJ then styx runs over the PCI ... 4  ixp1200s. asynch clunks.
 the only problem is it's 10 times quicker.

 I haven´t read the Journal, I thought it was referring to the Dylan´s song
 putting froggie as an archetype of decency. You are talking about this?:
 http://onlinelibrary.wiley.com/doi/10.1002/bltj.1/pdf

 Do you do completely asynch clunks or just the wait for the response?.
 10 times?, that is some latency. Can you break up exactly where the gain
 comes from?.

 G.





Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread roger peppe
On 28 October 2010 21:18, Charles Forsyth fors...@terzarima.net wrote:
 the race is that there's nothing to say that the clunk completes before the
 process continues on to do something more, including some action that depends 
 on the clunk completing,
 such as simply repeating the open. that open can fail if the mode or the name
 imposes particular constraints; constraints that depend on the order of 
 events as
 expressed by the process.

in practise, there is no race if the tree is being imported via
plan9's exportfs(4)
because it services clunk requests synchronously.

on the other hand inferno's sys-export(2) services all requests
(except Tflush) asynchronously,
so the race will always be present.

when importing a file server directly, the presence of the race will naturally
depend on the file server's implementation.

so this trick is unsafe in general, but might be ok sometimes.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Lucio De Re
On Fri, Oct 29, 2010 at 02:12:11PM +0100, roger peppe wrote:
 
 so this trick is unsafe in general, but might be ok sometimes.

So is the answer to add semantics to Topen or add a Treopen that obviates
the Tclunk?

++L



[9fans] What USB audio device are you using?

2010-10-29 Thread John Floren
Here's an open question to anyone using USB audio on Plan 9: What
device are you using? How well does it work?

I'm looking for something I can get on Amazon; my T22 has been silent
long enough!

John



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Eric Van Hensbergen
On Fri, Oct 29, 2010 at 4:01 AM, Charles Forsyth fors...@terzarima.net wrote:
What you are saying is that the problem could be something like:

- Tclunk
(do not wait for response)
- Topen (the file is exclusive)

 no, because what actually happens is closer to
        A: Topen
        ...
        queue request to *another process* to send Tclunk
        ...
        A: Topen

 leading to either case 1
        A: Topen
        B: Tclunk
        A: Topen

 or case 2
        A: Topen
        A: Topen
        B: Tclunk

 depending on the scheduling of the two processes A and B

 introducing that other process introduces a new race, that simply did not 
 exist before, because
 that other process didn't exist before. you always got case 1.

 and indeed, with the test i ran on the modified system usually it gets case 1
 because of timing, but eventually a case 2 shows up and the second open fails.


Just to make sure I understand things correctly, where does this mess
things up with standard (as opposed to synthetic) file systems?
ORCLOSE? OEXCL? Or is the primary concern the data flushing effect
implicit in clunk?  I'm inclined to agree with what I think gorka's
stance is, send the clunk, but have an option to asynchronously gather
the response (or make that the default and the option would be to
synchronously wait for the response (waitfd(2)?)  That would allow
apps that really care about the data sync semantics (or oexcl, etc.)
to make sure things have proceeded as planned, but wouldn't hold up
the 99% of other apps that don't give a care.

I guess my concern is that the always synchronous clunk for race-less
semantics is simple, but if we really are giving up a big chunk of
performance for the majority of uses and users, then it begs
re-evaluation of the approach.

   -eric



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread roger peppe
On 29 October 2010 15:14, Eric Van Hensbergen eri...@gmail.com wrote:
 Just to make sure I understand things correctly, where does this mess
 things up with standard (as opposed to synthetic) file systems?

i think that part of the problem is that plan 9 makes no distinction
between standard and synthetic file systems.

perhaps if there was, then optimisations like this could
work a little less haphazardly.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread erik quanstrom
 i think that part of the problem is that plan 9 makes no distinction
 between standard and synthetic file systems.
 
 perhaps if there was, then optimisations like this could
 work a little less haphazardly.

what's a reasonable definition of standard?

- erik



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Eric Van Hensbergen
On Fri, Oct 29, 2010 at 10:21 AM, roger peppe rogpe...@gmail.com wrote:
 On 29 October 2010 15:14, Eric Van Hensbergen eri...@gmail.com wrote:
 Just to make sure I understand things correctly, where does this mess
 things up with standard (as opposed to synthetic) file systems?

 i think that part of the problem is that plan 9 makes no distinction
 between standard and synthetic file systems.

 perhaps if there was, then optimisations like this could
 work a little less haphazardly.


Yeah, that was sort of a baseline assumption for me.  Most of the
synthetic file servers are susceptible to problems from such short
cuts (although as Brucee points out, that depends on the short-cut and
the file server).  However, in many cases those servers don't need
particularly high performance.  It would be nice to have a
system/protocol capable of satisfying both design points.  Perhaps
pi-p could provide such flexibility, perhaps it would need to be
something else.

  -eric



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
 things up with standard (as opposed to synthetic) file systems?

why should a synthetic file system (actually they are all synthetic, i think)
be considered not standard? i thought file systems were the common currency 
in the system.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
in practise, there is no race if the tree is being imported via
plan9's exportfs(4)
because it services clunk requests synchronously.

there is indeed a race because another process is issuing the clunk(s),
not the one that's doing the open(s).



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
Do you do completely asynch clunks or just the wait for the response?.

it uses `completely' async clunks, which is why it can be broken.

having the original process send the Tclunk and not wait
for the Rclunk is different. i think it was mentioned last time this
matter came up, and that's probably why i didn't pursue this discussion
further then, since that change is less of a problem. (at least, if you don't 
mind
close not returning an error from the clunk, but since the current 
implementations
suppress errors from clunk, it's a trickier position to sustain.)



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Eric Van Hensbergen
On Fri, Oct 29, 2010 at 10:49 AM, Charles Forsyth fors...@terzarima.net wrote:
 things up with standard (as opposed to synthetic) file systems?

 why should a synthetic file system (actually they are all synthetic, i 
 think)
 be considered not standard? i thought file systems were the common currency 
 in the system.


correct, it seems to have caused confusion all around.  Perhaps
s/standard/disk/g

  -eric



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
having the original process send the Tclunk and not wait
for the Rclunk is different.

ah. having thought about it, i see it's different only in the case of
one process. it isn't different if you have several processes that are
trying to co-operate in an allowed way: failing to let the issuing
process know when the operation has actually been completed prevents
it from communicating that to another process, but on the other hand,
with the existing constructions, it can't find out.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Venkatesh Srinivas
On Fri, Oct 29, 2010 at 5:01 AM, Charles Forsyth fors...@terzarima.netwrote:

 What you are saying is that the problem could be something like:

 - Tclunk
 (do not wait for response)
 - Topen (the file is exclusive)

 no, because what actually happens is closer to
A: Topen
...
queue request to *another process* to send Tclunk
...
A: Topen

 leading to either case 1
A: Topen
B: Tclunk
A: Topen

 or case 2
A: Topen
A: Topen
B: Tclunk

 depending on the scheduling of the two processes A and B

 introducing that other process introduces a new race, that simply did not
 exist before, because
 that other process didn't exist before. you always got case 1.

 and indeed, with the test i ran on the modified system usually it gets case
 1
 because of timing, but eventually a case 2 shows up and the second open
 fails.


Correct. Either ordering is reasonable and not-a-problem when dealing with a
decent fileserver. There are certainly file servers and open options that
force single-open, but this approach is not for them.

-- vs


Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
this discussion was more interesting in thev UNIX room. froggie hasn't
hung up yet thru a serious thrashing this evening - and all the FSs
are synthetic - it has no disk.

as much as i like philosophizing that's not my way.

brucee

On Sat, Oct 30, 2010 at 2:50 AM, Eric Van Hensbergen eri...@gmail.com wrote:
 On Fri, Oct 29, 2010 at 10:49 AM, Charles Forsyth fors...@terzarima.net 
 wrote:
 things up with standard (as opposed to synthetic) file systems?

 why should a synthetic file system (actually they are all synthetic, i 
 think)
 be considered not standard? i thought file systems were the common 
 currency in the system.


 correct, it seems to have caused confusion all around.  Perhaps
 s/standard/disk/g

      -eric





Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread roger peppe
On 29 October 2010 17:01, Charles Forsyth fors...@terzarima.net wrote:
Do you do completely asynch clunks or just the wait for the response?.

 it uses `completely' async clunks, which is why it can be broken.

 having the original process send the Tclunk and not wait
 for the Rclunk is different.

for some reason, though i didn't look at the diffs, i thought
that's what this patch did.

even sending Tclunk synchronously is still problematic in quite a few scenarios,
for the reasons i outlined above.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Venkatesh Srinivas
On Fri, Oct 29, 2010 at 12:01 PM, Charles Forsyth fors...@terzarima.netwrote:

 Do you do completely asynch clunks or just the wait for the response?.

 it uses `completely' async clunks, which is why it can be broken.

 having the original process send the Tclunk and not wait
 for the Rclunk is different. i think it was mentioned last time this
 matter came up, and that's probably why i didn't pursue this discussion
 further then, since that change is less of a problem. (at least, if you
 don't mind
 close not returning an error from the clunk, but since the current
 implementations
 suppress errors from clunk, it's a trickier position to sustain.)


I think that this is a fine approach as well -- the vast majority of the
performance improvement is in eliminating the wait for the Rclunk, not in
the asynchronous issue. I didn't use this approach here not because I wanted
to issue the clunk out-of-line, but because it was harder to code (I'd have
needed to split devmnt's mountio()).

This was actually the approach Wes and I did last year when commenting on
the desirability of asynchronous clunks, in a purely user mode process.
The performance gains were very similar to this work.

-- vs


Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
gee i thought i was the first to say deadly-embrace on this thread.
it's not only problematic it's wrong. just reiterating what little
shaun said circa 1999.

brucee

On Sat, Oct 30, 2010 at 3:02 AM, roger peppe rogpe...@gmail.com wrote:
 On 29 October 2010 17:01, Charles Forsyth fors...@terzarima.net wrote:
Do you do completely asynch clunks or just the wait for the response?.

 it uses `completely' async clunks, which is why it can be broken.

 having the original process send the Tclunk and not wait
 for the Rclunk is different.

 for some reason, though i didn't look at the diffs, i thought
 that's what this patch did.

 even sending Tclunk synchronously is still problematic in quite a few 
 scenarios,
 for the reasons i outlined above.





Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
i don't believe that is possible in my implementation. will check.

it was your implementation i was testing.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
on the other hand inferno's sys-export(2) services all requests
(except Tflush) asynchronously,
so the race will always be present.

no, that mistakes the problem. without the change, the issuing process
will see the clunk completed before it attempts any further operations:
no race. with the change, that is no longer true, even for a single (visible)
process.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Venkatesh Srinivas
erik quanstrom wrote:
 what's a reasonable definition of standard?

I've been using 'decent' in much the same way 'standard' or 'disk' is being
used; I'd actually prefer nemo's idea of a QTDECENT qidtype to marking the
file server. The original QTDECENT proposal (actually originally inverted
logic, in the form of QTCTL) said this about indecent files: this file does
not behave like a regular file, do not cache and handle with care.

I think stating it in the form: indecent files require in-order issue _and_
completion of a 9p request stream from the perspective of the application
making the system calls/generating 9p messages to the file service. There
is a loose convention now of qid.version == 0 meaning something like
'indecent'.

 roger, charles describe races in both async TClunk issue and async RClunk
wait:

r1 :=

A:   sekrit B:
TOpen(name, ...)
spawn TClunk
TOpen(name, ...)
  TClunk(fid..)
  RClunk(yep! / nope!)
...

Perhaps I'm being really thick, but this is the same scenario as a current:

A:explicit process B:
-TOpen(name, ...)
- ROpen(yea)
   - TOpen(name, ...)
   - ROpen(zzz)
- TClunk(fid)
- RClunk(fid)
...

zzz := Yes, of course, on a 'decent' fileserver; 'no' on an indecent one, or
with OEXCL in A's open. All the asynchronous issue opens is this concurrency
issue with yourself (A against itself)... but it already exists if you don't
use OEXCL in the (A against B) form.

On Fri, Oct 29, 2010 at 11:59 AM, Bruce Ellis bruce.el...@gmail.com wrote:

 this discussion was more interesting in thev UNIX room. froggie hasn't
 hung up yet thru a serious thrashing this evening - and all the FSs
 are synthetic - it has no disk.

 as much as i like philosophizing that's not my way.

 brucee


When you get a chance, could you describe your approach in more detail?

Bruce Ellis also wrote:
 Roger Peppe wrote:
 even sending Tclunk synchronously is still problematic in quite a few
scenarios,
 for the reasons i outlined above.
 gee i thought i was the first to say deadly-embrace on this thread.
 it's not only problematic it's wrong. just reiterating what little
 shaun said circa 1999.

Sorry, I don't see the embrace... when the original close() caller doesn't
wait on the TClunk/RClunk pair, what would it stall on? What would the close
process stall on?

Thanks!
-- vs


Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread David Leimbach
On Fri, Oct 29, 2010 at 8:49 AM, Charles Forsyth fors...@terzarima.netwrote:

  things up with standard (as opposed to synthetic) file systems?

 why should a synthetic file system (actually they are all synthetic, i
 think)
 be considered not standard? i thought file systems were the common
 currency in the system.



All file systems are synthetic, some are backed by disk blocks, or other
goo.  File systems are nothing more than a namespace abstraction on X, where
you get to decide what X is if you're implementing one.

This is what I've been trying to communicate to my software development
teams last year, and they very nearly got it :-).

I think functional programming or at least category theory gets you into
these upper level abstract ways of thinking that help with making such
nonsense into sense.  (I'm not sure that last sentence really parses, but
since I've lost my backspace key, there it is)

Dave


Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread roger peppe
On 29 October 2010 17:17, Bruce Ellis bruce.el...@gmail.com wrote:
 gee i thought i was the first to say deadly-embrace on this thread.
 it's not only problematic it's wrong. just reiterating what little
 shaun said circa 1999.

if deadlock is the issue, isn't it solved just as well
by asynchronously receiving the Rclunk as by processing
the whole clunk message asychronously?



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
I think functional programming or at least category theory gets you into
these upper level abstract ways of thinking

uh oh. is there an analogy to Godwin's Law for mentioning category theory?



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Charles Forsyth
 Let's try to define 'decent' for this thread -- a decent fileserver is one
 on which close()s do not have any client-visible or semantic effect other
 than to invalidate the Fid that was passed to them. Lets see how many file
 servers we can think of that are 'decent': fossil, kfs, ken, memfs, ...

unfortunately, fossil and kfs both can have important visible state changes on 
a clunk,
so that lets them out.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread erik quanstrom
 I've been using 'decent' in much the same way 'standard' or 'disk' is being
 used; I'd actually prefer nemo's idea of a QTDECENT qidtype to marking the
 file server. The original QTDECENT proposal (actually originally inverted
 logic, in the form of QTCTL) said this about indecent files: this file does
 not behave like a regular file, do not cache and handle with care.

unfortunately, unless you are talking about archival storage (e.g., /n/dump),
i think the difference between a decent file and a ctl file starts to seem 
slippery.
unless a file is exclusive open it's hard to be sure that a file won't change
underneath you.  

- erik



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread erik quanstrom
On Fri Oct 29 13:15:45 EDT 2010, fors...@terzarima.net wrote:
  Let's try to define 'decent' for this thread -- a decent fileserver is one
  on which close()s do not have any client-visible or semantic effect other
  than to invalidate the Fid that was passed to them. Lets see how many file
  servers we can think of that are 'decent': fossil, kfs, ken, memfs, ...
 
 unfortunately, fossil and kfs both can have important visible state changes 
 on a clunk,
 so that lets them out.

i think we're reducing this down to it's easy to cache the hell
out of immutable files.

- erik



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread erik quanstrom
 Category Theory really doesn't say too much in general, but oddly enough it
 applies nicely to computer science.  What's that mean? :-)

that they're both abstract nonsense.

- erik



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread David Leimbach
On Fri, Oct 29, 2010 at 10:13 AM, Charles Forsyth fors...@terzarima.netwrote:

 I think functional programming or at least category theory gets you into
 these upper level abstract ways of thinking

 uh oh. is there an analogy to Godwin's Law for mentioning category theory?

 I hope not... I'm merely trying to say the act of moving a problem between
languages can shed some light from time to time.

Category Theory really doesn't say too much in general, but oddly enough it
applies nicely to computer science.  What's that mean? :-)


Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread David Leimbach
On Fri, Oct 29, 2010 at 10:17 AM, erik quanstrom
quans...@labs.coraid.comwrote:

 On Fri Oct 29 13:15:45 EDT 2010, fors...@terzarima.net wrote:
   Let's try to define 'decent' for this thread -- a decent fileserver is
 one
   on which close()s do not have any client-visible or semantic effect
 other
   than to invalidate the Fid that was passed to them. Lets see how many
 file
   servers we can think of that are 'decent': fossil, kfs, ken, memfs, ...
 
  unfortunately, fossil and kfs both can have important visible state
 changes on a clunk,
  so that lets them out.

 i think we're reducing this down to it's easy to cache the hell
 out of immutable files.


Well that's like memoization of a pure function.  The answer is yes,
because if the output of a function doesn't change when the same input is
applied, the function is just a table lookup anyway.  Same should hold true
for immutable files and the operations available on them not being able to
change the state.

When dependent state doesn't change, concurrency is easier to get right.

Dave



 - erik




Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
who said deadlock. it's an easily reproducible situation. rattle the
cage is not a solution.

brucee

On Sat, Oct 30, 2010 at 4:26 AM, erik quanstrom quans...@quanstro.net wrote:
 Category Theory really doesn't say too much in general, but oddly enough it
 applies nicely to computer science.  What's that mean? :-)

 that they're both abstract nonsense.

 - erik





Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Eric Van Hensbergen
On Fri, Oct 29, 2010 at 12:18 PM, Charles Forsyth fors...@terzarima.net wrote:
 Let's try to define 'decent' for this thread -- a decent fileserver is one
 on which close()s do not have any client-visible or semantic effect other
 than to invalidate the Fid that was passed to them. Lets see how many file
 servers we can think of that are 'decent': fossil, kfs, ken, memfs, ...

 unfortunately, fossil and kfs both can have important visible state changes 
 on a clunk,
 so that lets them out.


qid.vers?  What else?  What % of apps depend on the visible stage
change?  Sorry - I'm not really trying to be an ass (even though I may
be succeeding), I'm just trying to get an idea of the actual negative
impact.  I imagine if I made this change in v9fs for Linux servers I
wouldn't see any negative behavior at all.

   -eric



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread David Leimbach
On Fri, Oct 29, 2010 at 10:26 AM, erik quanstrom quans...@quanstro.netwrote:

  Category Theory really doesn't say too much in general, but oddly enough
 it
  applies nicely to computer science.  What's that mean? :-)

 that they're both abstract nonsense.

 - erik


Yeah... the most fun I had making something concrete was last weekend when I
wore to nasty blisters into my hands debarking about 170 feet of 18 inch
logs for a structure to camp under year round.  Computer software doesn't
often leave one with much to stand back and admire.  At least not so much
that non-software people can appreciate with you :-).

Sometimes it's nice to do things less abstract.

Dave


Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Gorka Guardiola

 Let's try to define 'decent' for this thread -- a decent fileserver is one
 on which close()s do not have any client-visible or semantic effect other
 than to invalidate the Fid that was passed to them. Lets see how many file
 servers we can think of that are 'decent': fossil, kfs, ken, 

Decent meant cacheable. Your meaning as nemo said... not so decent. cacheable 
!= clunk is nop
even further
cacheable != clunk can be processed asynchronously. Both concepts are 
orthogonal.

Cathegory theory is useful for thinking about topology and other things. It is 
not abstract nonsense, only abstract. It *is* noise in this thread though.




Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread David Leimbach
On Fri, Oct 29, 2010 at 11:54 AM, Gorka Guardiola pau...@gmail.com wrote:


  Let's try to define 'decent' for this thread -- a decent fileserver is
 one
  on which close()s do not have any client-visible or semantic effect
 other
  than to invalidate the Fid that was passed to them. Lets see how many
 file
  servers we can think of that are 'decent': fossil, kfs, ken,

 Decent meant cacheable. Your meaning as nemo said... not so decent.
 cacheable != clunk is nop
 even further
 cacheable != clunk can be processed asynchronously. Both concepts are
 orthogonal.


It might be more useful to think of it in terms of what it *does* mean.

Asynchronous clunkableness == no dependencies on ordering of clunk
processing to the next open call?

Cacheability can mean a lot of stuff depending on what is being cached, and
how such a cache becomes invalidated and refreshed.  I agree it's
orthogonal.



 Cathegory theory is useful for thinking about topology and other things. It
 is not abstract nonsense, only abstract. It *is* noise in this thread
 though.



It's tangentially related to an off to the side comment about cacheability.
 But yes it's definitely noise :-).


Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread roger peppe
On 29 October 2010 18:47, Bruce Ellis bruce.el...@gmail.com wrote:
 who said deadlock. it's an easily reproducible situation. rattle the
 cage is not a solution.

sorry then, i misunderstood you. what else did you mean by deadly embrace?



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread erik quanstrom
  Let's try to define 'decent' for this thread -- a decent fileserver is one
  on which close()s do not have any client-visible or semantic effect other
  than to invalidate the Fid that was passed to them. Lets see how many file
  servers we can think of that are 'decent': fossil, kfs, ken, 
 
 Decent meant cacheable. Your meaning as nemo said... not so decent. cacheable 
 != clunk is nop
 even further
 cacheable != clunk can be processed asynchronously. Both concepts are 
 orthogonal.

that's sort of recursively begging the question.  cachable in what
sense?

 Cathegory theory is useful for thinking about topology and other things. It 
 is not abstract nonsense, only abstract. It *is* noise in this thread though.

at the risk of the explaination devolving into general abstract nonsense, ...
in the english literature, category theory is often refered to as
abstract nonsense.  it's a mathematician joke, and a complement,
that i thought would be appreciated here.

http://en.wikipedia.org/wiki/Abstract_nonsense

- erik



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
back to school for roger

On Sat, Oct 30, 2010 at 6:33 AM, roger peppe rogpe...@gmail.com wrote:
 On 29 October 2010 18:47, Bruce Ellis bruce.el...@gmail.com wrote:
 who said deadlock. it's an easily reproducible situation. rattle the
 cage is not a solution.

 sorry then, i misunderstood you. what else did you mean by deadly embrace?





Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Gorka Guardiola

On Oct 29, 2010, at 10:27 PM, Bruce Ellis bruce.el...@gmail.com wrote:

 back to school for roger
 
 On Sat, Oct 30, 2010 at 6:33 AM, roger peppe rogpe...@gmail.com wrote:
 On 29 October 2010 18:47, Bruce Ellis bruce.el...@gmail.com wrote:
 who said deadlock. it's an easily reproducible situation. rattle the
 cage is not a solution.
 
 sorry then, i misunderstood you. what else did you mean by deadly embrace?
 
 
 

I need to go back to school with him too.

http://www.olc.edu/~cdelong/jargon-4.4.7/jargon-4.4.7/html/D/deadly-embrace.html

Unless it is again some obscure reference...


Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
that definition is wrong!

On Sat, Oct 30, 2010 at 7:41 AM, Gorka Guardiola pau...@gmail.com wrote:

 On Oct 29, 2010, at 10:27 PM, Bruce Ellis bruce.el...@gmail.com wrote:

 back to school for roger

 On Sat, Oct 30, 2010 at 6:33 AM, roger peppe rogpe...@gmail.com wrote:
 On 29 October 2010 18:47, Bruce Ellis bruce.el...@gmail.com wrote:
 who said deadlock. it's an easily reproducible situation. rattle the
 cage is not a solution.

 sorry then, i misunderstood you. what else did you mean by deadly embrace?




 I need to go back to school with him too.

 http://www.olc.edu/~cdelong/jargon-4.4.7/jargon-4.4.7/html/D/deadly-embrace.html

 Unless it is again some obscure reference...




[9fans] replica/pull as of today

2010-10-29 Thread ron minnich
trying to build an omap, I get a missing mousexy and mouseresize in
libdraw. They are indeed not there at least in what I pulled. Any
hints here?

ron



Re: [9fans] replica/pull as of today

2010-10-29 Thread David du Colombier
 trying to build an omap, I get a missing mousexy and mouseresize in
 libdraw. They are indeed not there at least in what I pulled. Any
 hints here?

I had exactly the same problem.

-- 
David du Colombier



Re: [9fans] replica/pull as of today

2010-10-29 Thread geoff
They are defined in port/devmouse.c.  Did you get an updated
beagle config file when you pulled?  You should have.



Re: [9fans] replica/pull as of today

2010-10-29 Thread ron minnich
On Fri, Oct 29, 2010 at 2:52 PM,  ge...@plan9.bell-labs.com wrote:
 They are defined in port/devmouse.c.


there is no port/devmouse.c in my tree. Pull just done a few minutes ago.

ron



Re: [9fans] replica/pull as of today

2010-10-29 Thread ron minnich
On Fri, Oct 29, 2010 at 2:58 PM, ron minnich rminn...@gmail.com wrote:
 On Fri, Oct 29, 2010 at 2:52 PM,  ge...@plan9.bell-labs.com wrote:
 They are defined in port/devmouse.c.


 there is no port/devmouse.c in my tree. Pull just done a few minutes ago.


arg. no wait there is.

Hold on.

ron



Re: [9fans] replica/pull as of today

2010-10-29 Thread ron minnich
OK had to uncomment the mouse in the devs, and all was well.

ron



Re: [9fans] replica/pull as of today

2010-10-29 Thread David du Colombier
 They are defined in port/devmouse.c.  Did you get an updated
 beagle config file when you pulled?  You should have.

No. It seems the problem is there.

-- 
David du Colombier



Re: [9fans] replica/pull as of today

2010-10-29 Thread David du Colombier
 OK had to uncomment the mouse in the devs, and all was well.

It seems the replica database is not fully up to date, since the file
/sys/src/9/omap/beagle contains the uncommented mouse on sources.

-- 
David du Colombier



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bakul Shah
See EWD108 Een algorithme ter voorkoming van de dodelijke
omarming. (An algorithm to avoid the deadly embrace.) in
which Dijkstra describes his Bankers algorithm.  1965 or
earlier. Of course, you may be looking at deadly embrace
from a different point of view.

On Sat, 30 Oct 2010 07:44:58 +1100 Bruce Ellis bruce.el...@gmail.com  wrote:
 that definition is wrong!
 
 On Sat, Oct 30, 2010 at 7:41 AM, Gorka Guardiola pau...@gmail.com wrote:
 
  On Oct 29, 2010, at 10:27 PM, Bruce Ellis bruce.el...@gmail.com wrote:
 
  back to school for roger
 
  On Sat, Oct 30, 2010 at 6:33 AM, roger peppe rogpe...@gmail.com wrote:
  On 29 October 2010 18:47, Bruce Ellis bruce.el...@gmail.com wrote:
  who said deadlock. it's an easily reproducible situation. rattle the
  cage is not a solution.
 
  sorry then, i misunderstood you. what else did you mean by deadly embrac
 e?
 
 
 
 
  I need to go back to school with him too.
 
  http://www.olc.edu/~cdelong/jargon-4.4.7/jargon-4.4.7/html/D/deadly-embrace
 .html
 
  Unless it is again some obscure reference...
 
 



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread roger peppe
On 29 October 2010 21:44, Bruce Ellis bruce.el...@gmail.com wrote:
 that definition is wrong!

so point us to the right one then.



Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
grab a book by hoare or morgan.

brucee

On Sat, Oct 30, 2010 at 9:39 AM, roger peppe rogpe...@gmail.com wrote:
 On 29 October 2010 21:44, Bruce Ellis bruce.el...@gmail.com wrote:
 that definition is wrong!

 so point us to the right one then.





Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread roger peppe
the only book by hoare i've got (CSP) doesn't mention a deadly embrace.

On 29 October 2010 23:43, Bruce Ellis bruce.el...@gmail.com wrote:
 grab a book by hoare or morgan.

 brucee

 On Sat, Oct 30, 2010 at 9:39 AM, roger peppe rogpe...@gmail.com wrote:
 On 29 October 2010 21:44, Bruce Ellis bruce.el...@gmail.com wrote:
 that definition is wrong!

 so point us to the right one then.







Re: [9fans] A little more ado about async Tclunk

2010-10-29 Thread Bruce Ellis
well you need more books.

On Sat, Oct 30, 2010 at 10:07 AM, roger peppe rogpe...@gmail.com wrote:
 the only book by hoare i've got (CSP) doesn't mention a deadly embrace.

 On 29 October 2010 23:43, Bruce Ellis bruce.el...@gmail.com wrote:
 grab a book by hoare or morgan.

 brucee

 On Sat, Oct 30, 2010 at 9:39 AM, roger peppe rogpe...@gmail.com wrote:
 On 29 October 2010 21:44, Bruce Ellis bruce.el...@gmail.com wrote:
 that definition is wrong!

 so point us to the right one then.