From: Adriano Verardo <a.verardo@tecmav.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu>
Subject: [9fans] 9P2000 and p9p
Date: Tue, 10 Apr 2007 19:12:27 +0200 [thread overview]
Message-ID: <461BC57B.3090006@tecmav.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1698 bytes --]
Hi, all.
I'm writing a lib to build 9P200 file servers for x86-class embedded
systems under RTEMS.
Testing the same server under FreeBSD and RTEMS with one Plan9 or
FreeBSD p9p client I noted some things that I don't understand.
Config: Server = adri (FreeBSD 6.2+fuse+p9p) or leo (RTEMS 4.6.5),
same behaviour
Client = dria (Plan9 or FreeBSD 6.0+fuse+p9p)
1) Different use of Fids in Plan9 and p9p
Plan9% srv tcp!adri!12000 adri
Plan9% mount /srv/adri /n/adri
Plan9% lc /n/adri (several times)
Plan9% unmount /n/adri
FrBSD% srv 'tcp!adri!12000' adri
FrBSD% 9 mount NS/adri /n/adri
FrBSD% lc /n/adri (several times)
FrBSD% 9 unmount /n/adri
The log of the two sessions above are in the the attached files.
I see that the FreeBDS "lc" command allocates a lot of Fids while
Plan9 reuse them issuing Tclunk messages as soon as possible.
My server use a static Fid table (FidTab=<used>/<total> in the logs).
The number of allocated Fids grows (until the unmount) so a larger table
(or malloc-ed Fids) is not a solution.
2) Different use of Fids in Plan9 and p9p
The Unix "ls" reuse the Fids as the "lc" does.
3) Tread
>[ 23] Tread: tag=4, fid=201, offset=0, count=8192
<[292] Rread: tag=4, count=281
E\0\0\0\0\0\0\0\0\0\0\0\0\32\1\0\0\0\0\0\0\37777777666\1\0\0\0
\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\7\0file_0a\7\0adriano\7\0adr
>[ 23] Tread: tag=4, fid=201, offset=281, count=8192
<[ 11] Rread: tag=4, count=0
Why the client always sends a second Tread request ?
If the Rread returned 281/8192 bytes and the msize is > 8192 it should
be clear that there is no other data to read.
Thanks in advance
A. Verardo
[-- Attachment #2: test9P_FreeBSD.txt --]
[-- Type: text/plain, Size: 11453 bytes --]
------------------------------------------------
srv 'tcp!adri!12000' adri
------------------------------------------------
>>>> ENTER SERVER LOOP
>[ 21] Tversion: tag=65535, msize=8192, version='9P2000.u'
<[ 21] Rversion: tag=65535, msize=8192, version='9P2000.u'
------------------------------------------------
9 mount NS/adri /n/adri
------------------------------------------------
>[ 26] Tattach: tag=0, fid=0, afid=-1, uname='adriano', aname=''
<[ 20] Rattach: tag=0, qid=[0000000000000111 0 (d)]
>[ 11] Tstat: tag=0, fid=0 FidTab=1/10
<[ 74] Rstat: tag=0, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
------------------------------------------------
lc /n/adri
------------------------------------------------
>[ 11] Tstat: tag=0, fid=0 FidTab=1/10
<[ 74] Rstat: tag=0, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
>[ 17] Twalk: tag=0, fid=0, newfid=1, nwname=0
<[ 9] Rwalk: tag=0, nwqid=0 FidTab=2/10
>[ 12] Topen: tag=0, fid=1, mode=0x0=RD
<[ 24] Ropen: tag=0, qid=[0000000000000111 0 (d)], iounit=0
>[ 11] Tclunk: tag=0, fid=1 FidTab=2/10
<[ 7] Rclunk: tag=0, FidTab=1/10
>[ 17] Twalk: tag=0, fid=0, newfid=1, nwname=0
<[ 9] Rwalk: tag=0, nwqid=0 FidTab=2/10
>[ 12] Topen: tag=0, fid=1, mode=0x0=RD
<[ 24] Ropen: tag=0, qid=[0000000000000111 0 (d)], iounit=0
>[ 11] Tstat: tag=0, fid=0 FidTab=2/10
<[ 74] Rstat: tag=0, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=0 FidTab=2/10
<[ 74] Rstat: tag=0, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
>[ 23] Tread: tag=0, fid=1, offset=0, count=8168
<[292] Rread: tag=0, count=281
E\0\0\0\0\0\0\0\0\0\0\0\0\32\1\0\0\0\0\0\0\37777777666\1\0\0\0
\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\7\0file_0a\7\0adriano\7\0adr
>[ 23] Tread: tag=0, fid=1, offset=281, count=8168
<[ 11] Rread: tag=0, count=0
>[ 23] Tread: tag=0, fid=1, offset=281, count=8168
<[ 11] Rread: tag=0, count=0
>[ 17] Twalk: tag=0, fid=0, newfid=2, nwname=0
<[ 9] Rwalk: tag=0, nwqid=0 FidTab=3/10
>[ 12] Topen: tag=0, fid=2, mode=0x0=RD
<[ 24] Ropen: tag=0, qid=[0000000000000111 0 (d)], iounit=0
>[ 11] Tclunk: tag=0, fid=2 FidTab=3/10
<[ 7] Rclunk: tag=0, FidTab=2/10
>[ 26] Twalk: tag=0, fid=0, newfid=2, nwname=1 0:file_0a
<[ 22] Rwalk: tag=0, nwqid=1 FidTab=3/10 qid=[000000000000011a 0 ()]
>[ 11] Tstat: tag=0, fid=2 FidTab=3/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011a 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0a', length=16
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=2 FidTab=3/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011a 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0a', length=16
uid='adriano', gid='adriano', muid=''
>[ 26] Twalk: tag=0, fid=0, newfid=3, nwname=1 0:file_0b
<[ 22] Rwalk: tag=0, nwqid=1 FidTab=4/10 qid=[000000000000011b 0 ()]
>[ 11] Tstat: tag=0, fid=3 FidTab=4/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011b 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0b', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=3 FidTab=4/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011b 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0b', length=0
uid='adriano', gid='adriano', muid=''
>[ 26] Twalk: tag=0, fid=0, newfid=4, nwname=1 0:file_0c
<[ 22] Rwalk: tag=0, nwqid=1 FidTab=5/10 qid=[000000000000011c 0 ()]
>[ 11] Tstat: tag=0, fid=4 FidTab=5/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011c 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0c', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=4 FidTab=5/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011c 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0c', length=0
uid='adriano', gid='adriano', muid=''
>[ 23] Twalk: tag=0, fid=0, newfid=5, nwname=1 0:dir1
<[ 22] Rwalk: tag=0, nwqid=1 FidTab=6/10 qid=[0000000000000222 0 (d)]
>[ 11] Tstat: tag=0, fid=5 FidTab=6/10
<[ 77] Rstat: tag=0, sz=68/66, type=0, dev=0, qid=[0000000000000222 0 (d)]
mode=0x800001FF=QT(DIR)777, at=0, mt=0
file='dir1', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=5 FidTab=6/10
<[ 77] Rstat: tag=0, sz=68/66, type=0, dev=0, qid=[0000000000000222 0 (d)]
mode=0x800001FF=QT(DIR)777, at=0, mt=0
file='dir1', length=0
uid='adriano', gid='adriano', muid=''
>[ 26] Twalk: tag=0, fid=0, newfid=6, nwname=1 0:file_0a
<[ 22] Rwalk: tag=0, nwqid=1 FidTab=7/10 qid=[000000000000011a 0 ()]
>[ 11] Tstat: tag=0, fid=6 FidTab=7/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011a 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0a', length=16
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=6 FidTab=7/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011a 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0a', length=16
uid='adriano', gid='adriano', muid=''
>[ 26] Twalk: tag=0, fid=0, newfid=7, nwname=1 0:file_0b
<[ 22] Rwalk: tag=0, nwqid=1 FidTab=8/10 qid=[000000000000011b 0 ()]
>[ 11] Tstat: tag=0, fid=7 FidTab=8/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011b 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0b', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=7 FidTab=8/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011b 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0b', length=0
uid='adriano', gid='adriano', muid=''
>[ 26] Twalk: tag=0, fid=0, newfid=8, nwname=1 0:file_0c
<[ 22] Rwalk: tag=0, nwqid=1 FidTab=9/10 qid=[000000000000011c 0 ()]
>[ 11] Tstat: tag=0, fid=8 FidTab=9/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011c 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0c', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=8 FidTab=9/10
<[ 80] Rstat: tag=0, sz=71/69, type=0, dev=0, qid=[000000000000011c 0 ()]
mode=0x1B6=QT(FILE)666, at=0, mt=0
file='file_0c', length=0
uid='adriano', gid='adriano', muid=''
>[ 23] Twalk: tag=0, fid=0, newfid=9, nwname=1 0:dir1
<[ 22] Rwalk: tag=0, nwqid=1 FidTab=10/10 qid=[0000000000000222 0 (d)]
>[ 11] Tstat: tag=0, fid=9 FidTab=10/10
<[ 77] Rstat: tag=0, sz=68/66, type=0, dev=0, qid=[0000000000000222 0 (d)]
mode=0x800001FF=QT(DIR)777, at=0, mt=0
file='dir1', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tstat: tag=0, fid=9 FidTab=10/10
<[ 77] Rstat: tag=0, sz=68/66, type=0, dev=0, qid=[0000000000000222 0 (d)]
mode=0x800001FF=QT(DIR)777, at=0, mt=0
file='dir1', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tclunk: tag=0, fid=1 FidTab=10/10
<[ 7] Rclunk: tag=0, FidTab=9/10
------------------------------------------------
lc /n/adri
------------------------------------------------
>[ 11] Tstat: tag=0, fid=0 FidTab=9/10
<[ 74] Rstat: tag=0, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
>[ 17] Twalk: tag=0, fid=0, newfid=1, nwname=0
<[ 9] Rwalk: tag=0, nwqid=0 FidTab=10/10
>[ 12] Topen: tag=0, fid=1, mode=0x0=RD
<[ 24] Ropen: tag=0, qid=[0000000000000111 0 (d)], iounit=0
>[ 11] Tclunk: tag=0, fid=1 FidTab=10/10
<[ 7] Rclunk: tag=0, FidTab=9/10
>[ 17] Twalk: tag=0, fid=0, newfid=1, nwname=0
<[ 9] Rwalk: tag=0, nwqid=0 FidTab=10/10
>[ 12] Topen: tag=0, fid=1, mode=0x0=RD
<[ 24] Ropen: tag=0, qid=[0000000000000111 0 (d)], iounit=0
>[ 11] Tstat: tag=0, fid=0 FidTab=10/10
<[ 74] Rstat: tag=0, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
>[ 23] Tread: tag=0, fid=1, offset=0, count=8168
<[292] Rread: tag=0, count=281
E\0\0\0\0\0\0\0\0\0\0\0\0\32\1\0\0\0\0\0\0\37777777666\1\0\0\0
\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\7\0file_0a\7\0adriano\7\0adr
>[ 23] Tread: tag=0, fid=1, offset=281, count=8168
<[ 11] Rread: tag=0, count=0
>[ 23] Tread: tag=0, fid=1, offset=281, count=8168
<[ 11] Rread: tag=0, count=0
>[ 17] Twalk: tag=0, fid=0, newfid=10, nwname=0
<[ 26] Rerror: tag=0, ename='no Fids available'
************************************************
Apr 10 16:24:37.686 bad packet - convM2S 0 but 26
************************************************
>[ 11] Tclunk: tag=1, fid=1 FidTab=10/10
<[ 7] Rclunk: tag=1, FidTab=9/10
------------------------------------------------
9 unmount /n/adri
------------------------------------------------
>[ 11] Tclunk: tag=1, fid=2 FidTab=9/10
<[ 7] Rclunk: tag=1, FidTab=8/10
>[ 9] Tflush: tag=1, oldtag= 0
<[ 7] Rflush: tag=1, FidTab=8/10
>[ 11] Tclunk: tag=0, fid=0 FidTab=8/10
<[ 7] Rclunk: tag=0, FidTab=7/10
>[ 11] Tclunk: tag=0, fid=3 FidTab=7/10
<[ 7] Rclunk: tag=0, FidTab=6/10
>[ 11] Tclunk: tag=0, fid=4 FidTab=6/10
<[ 7] Rclunk: tag=0, FidTab=5/10
>[ 11] Tclunk: tag=0, fid=5 FidTab=5/10
<[ 7] Rclunk: tag=0, FidTab=4/10
>[ 11] Tclunk: tag=0, fid=6 FidTab=4/10
<[ 7] Rclunk: tag=0, FidTab=3/10
>[ 11] Tclunk: tag=0, fid=7 FidTab=3/10
<[ 7] Rclunk: tag=0, FidTab=2/10
>[ 11] Tclunk: tag=0, fid=8 FidTab=2/10
<[ 7] Rclunk: tag=0, FidTab=1/10
>[ 11] Tclunk: tag=0, fid=9 FidTab=1/10
<[ 7] Rclunk: tag=0, FidTab=0/10
>[ 11] Tclunk: tag=0, fid=10 FidTab=0/10
<[ 36] Rerror: tag=0, ename='fid unknown or out of range'
-----------------------------------
END OF TEST
-----------------------------------
[-- Attachment #3: test9P_Plan9.txt --]
[-- Type: text/plain, Size: 4305 bytes --]
-----------------------------------
srv tcp!adri!12000 adri
-----------------------------------
>>>> ENTER SERVER LOOP
-----------------------------------
mount /srv/adri /n/adri
-----------------------------------
>[ 19] Tversion: tag=65535, msize=8216, version='9P2000'
<[ 19] Rversion: tag=65535, msize=8216, version='9P2000'
>[ 22] Tauth: tag=4, afid=223, uname='adriano', aname=''
<[ 25] Rerror: tag=4, ename='no auth required'
>[ 26] Tattach: tag=4, fid=223, afid=-1, uname='adriano', aname=''
<[ 20] Rattach: tag=4, qid=[0000000000000111 0 (d)]
-----------------------------------
lc /n/adri
-----------------------------------
>[ 17] Twalk: tag=4, fid=223, newfid=201, nwname=0
<[ 9] Rwalk: tag=4, nwqid=0 FidTab=2/10
>[ 11] Tstat: tag=4, fid=201 FidTab=2/10
<[ 74] Rstat: tag=4, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tclunk: tag=4, fid=201 FidTab=2/10
<[ 7] Rclunk: tag=4, FidTab=1/10
>[ 17] Twalk: tag=4, fid=223, newfid=201, nwname=0
<[ 9] Rwalk: tag=4, nwqid=0 FidTab=2/10
>[ 12] Topen: tag=4, fid=201, mode=0x0=RD
<[ 24] Ropen: tag=4, qid=[0000000000000111 0 (d)], iounit=0
>[ 23] Tread: tag=4, fid=201, offset=0, count=8192
<[292] Rread: tag=4, count=281
E\0\0\0\0\0\0\0\0\0\0\0\0\32\1\0\0\0\0\0\0\37777777666\1\0\0\0
\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\7\0file_0a\7\0adriano\7\0adr
>[ 23] Tread: tag=4, fid=201, offset=281, count=8192
<[ 11] Rread: tag=4, count=0
>[ 11] Tclunk: tag=4, fid=201 FidTab=2/10
<[ 7] Rclunk: tag=4, FidTab=1/10
-----------------------------------
lc /n/adri
-----------------------------------
>[ 17] Twalk: tag=2, fid=223, newfid=226, nwname=0
<[ 9] Rwalk: tag=2, nwqid=0 FidTab=2/10
>[ 11] Tstat: tag=2, fid=226 FidTab=2/10
<[ 74] Rstat: tag=2, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tclunk: tag=2, fid=226 FidTab=2/10
<[ 7] Rclunk: tag=2, FidTab=1/10
>[ 17] Twalk: tag=2, fid=223, newfid=226, nwname=0
<[ 9] Rwalk: tag=2, nwqid=0 FidTab=2/10
>[ 12] Topen: tag=2, fid=226, mode=0x0=RD
<[ 24] Ropen: tag=2, qid=[0000000000000111 0 (d)], iounit=0
>[ 23] Tread: tag=2, fid=226, offset=0, count=8192
<[292] Rread: tag=2, count=281
E\0\0\0\0\0\0\0\0\0\0\0\0\32\1\0\0\0\0\0\0\37777777666\1\0\0\0
\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\7\0file_0a\7\0adriano\7\0adr
>[ 23] Tread: tag=2, fid=226, offset=281, count=8192
<[ 11] Rread: tag=2, count=0
>[ 11] Tclunk: tag=2, fid=226 FidTab=2/10
<[ 7] Rclunk: tag=2, FidTab=1/10
-----------------------------------
lc /n/adri
-----------------------------------
>[ 17] Twalk: tag=4, fid=223, newfid=215, nwname=0
<[ 9] Rwalk: tag=4, nwqid=0 FidTab=2/10
>[ 11] Tstat: tag=4, fid=215 FidTab=2/10
<[ 74] Rstat: tag=4, sz=65/63, type=0, dev=0, qid=[0000000000000111 0 (d)]
mode=0x800001B7=QT(DIR)667, at=0, mt=0
file='/', length=0
uid='adriano', gid='adriano', muid=''
>[ 11] Tclunk: tag=4, fid=215 FidTab=2/10
<[ 7] Rclunk: tag=4, FidTab=1/10
>[ 17] Twalk: tag=4, fid=223, newfid=215, nwname=0
<[ 9] Rwalk: tag=4, nwqid=0 FidTab=2/10
>[ 12] Topen: tag=4, fid=215, mode=0x0=RD
<[ 24] Ropen: tag=4, qid=[0000000000000111 0 (d)], iounit=0
>[ 23] Tread: tag=4, fid=215, offset=0, count=8192
<[292] Rread: tag=4, count=281
E\0\0\0\0\0\0\0\0\0\0\0\0\32\1\0\0\0\0\0\0\37777777666\1\0\0\0
\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\7\0file_0a\7\0adriano\7\0adr
>[ 23] Tread: tag=4, fid=215, offset=281, count=8192
<[ 11] Rread: tag=4, count=0
>[ 11] Tclunk: tag=4, fid=215 FidTab=2/10
<[ 7] Rclunk: tag=4, FidTab=1/10
-----------------------------------
unmount /n/adri
-----------------------------------
>[ 11] Tclunk: tag=2, fid=223 FidTab=1/10
<[ 7] Rclunk: tag=2, FidTab=0/10
-----------------------------------
END OF TEST
-----------------------------------
next reply other threads:[~2007-04-10 17:12 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-10 17:12 Adriano Verardo [this message]
2007-04-10 17:39 ` Charles Forsyth
2007-04-10 18:14 ` Adriano Verardo
2007-04-10 19:33 ` C H Forsyth
2007-04-10 21:28 ` Adriano Verardo
2007-04-10 18:29 ` Russ Cox
2007-04-10 22:14 ` Adriano Verardo
2007-04-10 22:38 ` Charles Forsyth
2007-04-10 22:50 ` Russ Cox
2007-04-11 2:19 ` Adriano Verardo
2007-04-11 2:55 ` erik quanstrom
2007-04-11 3:10 ` Russ Cox
2007-04-11 6:58 ` Bruce Ellis
2007-04-11 8:20 ` Charles Forsyth
2007-04-11 15:38 ` ron minnich
2007-04-11 2:50 ` Kris Maglione
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=461BC57B.3090006@tecmav.com \
--to=a.verardo@tecmav.com \
--cc=9fans@cse.psu.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).