[patch] fastcall-2.3.31-B3, SYSENTER/SYSEXIT support

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Wed, 8 Dec 1999 18:45:55 +0100 (CET)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--79888902-1973713741-944672406=:2491
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.10.9912081845012.3530@chiara.csoma.elte.hu>

Linus, Ulrich,

here is some code so we can argue about real stuff.

the attached fastcall-2.3.31-B3 patch is a port of my fastcall-2.1.105-B
patch to pre1-2.3.31, it implements the Intel SYSENTER/SYSEXIT fast system
call entry points. (porting this to K6/K7 CPUs is not hard)

(you can find the original 1+ years old fastcall-2.1.105-B patch under
http://www.uwsg.indiana.edu/hypermail/linux/kernel/9806.1/0878.html -
hypermail indexing got my name wrong.)

the patch fixes a couple of problems in fastcall-2.1.105-B, and should be
a 'complete' implementation, all system calls under all circumstances
should work. It's been tested on SMP.

i've also attached a small testing program:

moon:~/fastcall> ./fastcall
(INT $0x80 based getpid(), got pid 900) latency:296 cycles
(SYSENTER based getpid(), got pid 900) latency:126 cycles

so the null-syscall latency speedup is ~135%!

the patch aims to handle all the boundary cases, ie. CPUs without
SYSENTER/SYSEXIT will work just fine (because the system call entry path
is completely split). User-space is not trusted to put a valid value into
%%ebp either, full exception handling all along the way.

*NOTE*. Although the patch does reload an MSR in switch_to(),
context-switch times do not get slower. Think about it.

suggestion: since we can control all the fastcall stubs on the glibc side,
i'd like to implement a different approach for 5 and 6-parameter system
calls. Only a minority of system calls has so many arguments, and those
can take some overhead anyway (since they are complex, obviously). The
solution would be to wrap all >4 parameter system calls into a special
4-parameter setup, where the 4th parameter points to an on-stack array of
2 or 3 additional parameters, which would be fetched (in a safe manner) by
arch/i386 and the generic system calls would be called with 5 or 6
parameters. This would speed up fast system calls by an additional 5%.

This means that the syscall table has to be split between fast and 'slow'
system calls - this is not a problem i believe, only one table will be
active for any given running kernel, so it's not a cache footprint
problem. If there are no conceptual objections, then i'd like to start
implementing this ASAP.

comments, flames, suggestions, bug/success reports welcome.

-- mingo

--79888902-1973713741-944672406=:2491
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="fastcall-2.3.31-B3"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9912081800060.2491@chiara.csoma.elte.hu>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="fastcall-2.3.31-B3"

LS0tIGxpbnV4L2luY2x1ZGUvYXNtLWkzODYvcHJvY2Vzc29yLmgub3JpZwlX
ZWQgRGVjICA4IDA3OjUyOjM4IDE5OTkNCisrKyBsaW51eC9pbmNsdWRlL2Fz
bS1pMzg2L3Byb2Nlc3Nvci5oCVdlZCBEZWMgIDggMDc6NTQ6MTYgMTk5OQ0K
QEAgLTExNSw2ICsxMTUsOCBAQA0KIAkJKGJvb3RfY3B1X2RhdGEueDg2X2Nh
cGFiaWxpdHkgJiBYODZfRkVBVFVSRV9QQUUpDQogI2RlZmluZSBjcHVfaGFz
X3RzYyBcDQogCQkoY3B1X2RhdGFbc21wX3Byb2Nlc3Nvcl9pZCgpXS54ODZf
Y2FwYWJpbGl0eSAmIFg4Nl9GRUFUVVJFX1RTQykNCisjZGVmaW5lIGNwdV9o
YXNfZmFzdHN5cyBcDQorCQkoYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0
eSAmIFg4Nl9GRUFUVVJFX1NFUCkNCiANCiBleHRlcm4gY2hhciBpZ25vcmVf
aXJxMTM7DQogDQotLS0gbGludXgvYXJjaC9pMzg2L2tlcm5lbC9wcm9jZXNz
LmMub3JpZwlXZWQgRGVjICA4IDA4OjAwOjQ1IDE5OTkNCisrKyBsaW51eC9h
cmNoL2kzODYva2VybmVsL3Byb2Nlc3MuYwlXZWQgRGVjICA4IDA4OjEyOjA1
IDE5OTkNCkBAIC01NDcsNiArNTQ3LDEwIEBADQogCQkJOiAvKiBubyBvdXRw
dXQgKi8gXA0KIAkJCToiciIgKHRocmVhZC0+ZGVidWdyZWdbcmVnaXN0ZXJd
KSkNCiANCisjZGVmaW5lIExPQURfRkFTVFNZUyhwKSBcDQorX19hc21fXyBf
X3ZvbGF0aWxlX18oIndybXNyIiA6IDogXA0KKyAgICAgICAiYyIgKDB4MTc1
KSwgImEiICgoaW50KShwKSArIDIqUEFHRV9TSVpFKSwgImQiICgwKSkNCisN
CiAvKg0KICAqCXN3aXRjaF90byh4LHluKSBzaG91bGQgc3dpdGNoIHRhc2tz
IGZyb20geCB0byB5Lg0KICAqDQpAQCAtNTc5LDYgKzU4Myw3IEBADQogDQog
CXVubGF6eV9mcHUocHJldl9wKTsNCiANCisJTE9BRF9GQVNUU1lTKG5leHRf
cCk7DQogCS8qDQogCSAqIFJlbG9hZCBlc3AwLCBMRFQgYW5kIHRoZSBwYWdl
IHRhYmxlIHBvaW50ZXI6DQogCSAqLw0KLS0tIGxpbnV4L2FyY2gvaTM4Ni9r
ZXJuZWwvZW50cnkuUy5vcmlnCVdlZCBEZWMgIDggMDU6NTQ6MjIgMTk5OQ0K
KysrIGxpbnV4L2FyY2gvaTM4Ni9rZXJuZWwvZW50cnkuUwlXZWQgRGVjICA4
IDA4OjMwOjM0IDE5OTkNCkBAIC0yLDYgKzIsOCBAQA0KICAqICBsaW51eC9h
cmNoL2kzODYvZW50cnkuUw0KICAqDQogICogIENvcHlyaWdodCAoQykgMTk5
MSwgMTk5MiAgTGludXMgVG9ydmFsZHMNCisgKg0KKyAqICBpbXBsZW1lbnRl
ZCBmYXN0IHN5c3RlbSBjYWxsIHN1cHBvcnQsIEluZ28gTW9sbmFyIDxtaW5n
b0ByZWRoYXQuY29tPg0KICAqLw0KIA0KIC8qDQpAQCAtNDUsNiArNDcsNyBA
QA0KICNpbmNsdWRlIDxhc20vc2VnbWVudC5oPg0KICNkZWZpbmUgQVNTRU1C
TFkNCiAjaW5jbHVkZSA8YXNtL3NtcC5oPg0KKyNpbmNsdWRlIDxhc20vcGFn
ZS5oPg0KIA0KIEVCWAkJPSAweDAwDQogRUNYCQk9IDB4MDQNCkBAIC05NSw3
ICs5OCw3IEBADQogCW1vdmwgJWR4LCVkczsgXA0KIAltb3ZsICVkeCwlZXM7
DQogDQotI2RlZmluZSBSRVNUT1JFX0FMTAlcDQorI2RlZmluZSBSRVNUT1JF
X0FMTF9SRUdTXA0KIAlwb3BsICVlYng7CVwNCiAJcG9wbCAlZWN4OwlcDQog
CXBvcGwgJWVkeDsJXA0KQEAgLTEwNiwxMiArMTA5LDQwIEBADQogMToJcG9w
bCAlZHM7CVwNCiAyOglwb3BsICVlczsJXA0KIAlhZGRsICQ0LCVlc3A7CVwN
Ci0zOglpcmV0OwkJXA0KIC5zZWN0aW9uIC5maXh1cCwiYXgiOwlcDQogNDoJ
bW92bCAkMCwoJWVzcCk7CVwNCiAJam1wIDFiOwkJXA0KIDU6CW1vdmwgJDAs
KCVlc3ApOwlcDQogCWptcCAyYjsJCVwNCisucHJldmlvdXM7CQlcDQorLnNl
Y3Rpb24gX19leF90YWJsZSwiYSI7XA0KKwkuYWxpZ24gNDsJXA0KKwkubG9u
ZyAxYiw0YjsJXA0KKwkubG9uZyAyYiw1YjsJXA0KKy5wcmV2aW91czsNCisN
CisjZGVmaW5lIFJFU1RPUkVfQUxMIFwNCisJUkVTVE9SRV9BTExfUkVHUyBc
DQorMzoJaXJldDsJCVwNCisuc2VjdGlvbiAuZml4dXAsImF4IjsJXA0KKzY6
CXB1c2hsICVzczsJXA0KKwlwb3BsICVkczsJXA0KKwlwdXNobCAlc3M7CVwN
CisJcG9wbCAlZXM7CVwNCisJcHVzaGwgJDExOwlcDQorCWNhbGwgZG9fZXhp
dDsJXA0KKy5wcmV2aW91czsJCVwNCisuc2VjdGlvbiBfX2V4X3RhYmxlLCJh
IjtcDQorCS5hbGlnbiA0OwlcDQorCS5sb25nIDNiLDZiOwlcDQorLnByZXZp
b3VzDQorDQorI2RlZmluZSBSRVNUT1JFX0FMTF9GQVNUU1lTIFwNCisJUkVT
VE9SRV9BTExfUkVHUyBcDQorCW1vdmwgJWVicCwgJWVjeDsgXA0KKzM6CW1v
dmwgKCVlYnApLCAlZWR4OyBcDQorCS5ieXRlIDB4MGYsIDB4MzU7IFwNCisu
c2VjdGlvbiAuZml4dXAsImF4IjsJXA0KIDY6CXB1c2hsICVzczsJXA0KIAlw
b3BsICVkczsJXA0KIAlwdXNobCAlc3M7CVwNCkBAIC0xMjEsMTUgKzE1Miwx
MTEgQEANCiAucHJldmlvdXM7CQlcDQogLnNlY3Rpb24gX19leF90YWJsZSwi
YSI7XA0KIAkuYWxpZ24gNDsJXA0KLQkubG9uZyAxYiw0YjsJXA0KLQkubG9u
ZyAyYiw1YjsJXA0KIAkubG9uZyAzYiw2YjsJXA0KIC5wcmV2aW91cw0KIA0K
Kw0KICNkZWZpbmUgR0VUX0NVUlJFTlQocmVnKSBcDQogCW1vdmwgJWVzcCwg
cmVnOyBcDQogCWFuZGwgJC04MTkyLCByZWc7DQogDQorRU5UUlkoZmFzdF9z
eXN0ZW1fY2FsbCkNCisNCisvKg0KKyAqICVlYnAgaGFzIHRoZSBjYWxsZXIn
cyBzdGFjaywgZmlyc3QgZW50cnkgb24gdGhlIHN0YWNrIGlzIHRoZQ0KKyAq
IHJldHVybiBlaXAgLi4uIGEgYml0IHVnbHkgYnV0IHdlIGhhdmUgdG8gZG8g
aXQgdGhpcyB3YXkgZHVlDQorICogdG8gdGhlIChvbmx5PykgNSBwYXJhbWV0
ZXIgc3lzdGVtIGNhbGwgc2VsZWN0KCkuDQorICoNCisgKiBhbHRlcm5hdGl2
ZWx5LCBpZiB3ZSBjb3VsZCByZXN0cmljdCBhbGwgeDg2IHN5c3RlbSBjYWxs
cyB0byBiZQ0KKyAqIDQtcGFyYW1ldGVyIG9ubHksIGFuZCBzZW5kIDUtNiBw
YXJhbWV0ZXIgc3lzdGVtIGNhbGxzIHRocm91Z2gNCisgKiBzcGVjaWFsIHN0
dWJzIHdoaWNoIGZldGNoIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmcm9tIHRo
ZSBzdGFjaywNCisgKiB0aGVuIHdlIGNvdWxkIGZ1cnRoZXIgc3BlZWQgdXAg
dGhlIGNvbW1vbiBwYXRoLg0KKyAqLw0KKw0KKwlzdGkJCQkJIyB1Z2ghIFNZ
U0VOVEVSIGRpc2FibGVzIElSUXMNCisNCisJcHVzaGwgJWVheAkJCSMgc2F2
ZSBvcmlnX2VheA0KKwlTQVZFX0FMTA0KKw0KKwkvKg0KKwkgKiBLZXJuZWwt
c3BhY2Ugd2lsbCBob3BlZnVsbHkgbm90IGRvIGEgZmFzdGNhbGwgZGlyZWN0
bHkNCisJICovDQorCWNtcGwgJF9fUEFHRV9PRkZTRVQsICVlYnANCisJamwg
MmYNCisxOgljbGkNCisJam1wIDFiDQorMjoNCisNCisJIw0KKwkjIHZhbGlk
YXRlIHRoZSB1c2VyIHByb3ZpZGVkIHJldHVybiBzdGFjay1wb2ludGVyIGFu
ZCBFSVANCisJIyBfYmVmb3JlXyB3ZSBleGVjdXRlIHRoZSBzeXN0ZW0gY2Fs
bC4NCisJIw0KKw0KKwlHRVRfQ1VSUkVOVCglZWJ4KQ0KKwljbXBsICAkKE5S
X3N5c2NhbGxzKSwlZWF4DQorCWphZSAgIGJhZGZhc3RzeXMNCisJdGVzdGIg
JDB4MjAsZmxhZ3MoJWVieCkJCSMgUEZfVFJBQ0VTWVMNCisJam5lIHRyYWNl
ZmFzdHN5cw0KKwljYWxsICpTWU1CT0xfTkFNRShzeXNfY2FsbF90YWJsZSko
LCVlYXgsNCkNCisJbW92bCAlZWF4LEVBWCglZXNwKQkJIyBzYXZlIHRoZSBy
ZXR1cm4gdmFsdWUNCisJQUxJR04NCisJLmdsb2JsIHJldF9mcm9tX2Zhc3Rz
eXNfY2FsbA0KK3JldF9mcm9tX2Zhc3RzeXNfY2FsbDoNCisJbW92bCBTWU1C
T0xfTkFNRShiaF9tYXNrKSwlZWF4DQorCWFuZGwgU1lNQk9MX05BTUUoYmhf
YWN0aXZlKSwlZWF4DQorCWpuZSBoYW5kbGVfYm90dG9tX2hhbGZfZmFzdHN5
cw0KK3JldF93aXRoX3Jlc2NoZWR1bGVfZmFzdHN5czoNCisJY21wbCAkMCxu
ZWVkX3Jlc2NoZWQoJWVieCkNCisJam5lIHJlc2NoZWR1bGVfZmFzdHN5cw0K
KwljbXBsICQwLHNpZ3BlbmRpbmcoJWVieCkNCisJam5lIHNpZ25hbF9yZXR1
cm5fZmFzdHN5cw0KK3Jlc3RvcmVfYWxsX2Zhc3RzeXM6DQorCVJFU1RPUkVf
QUxMX0ZBU1RTWVMNCisNCisJQUxJR04NCitoYW5kbGVfYm90dG9tX2hhbGZf
ZmFzdHN5czoNCisJY2FsbCBTWU1CT0xfTkFNRShkb19ib3R0b21faGFsZikN
CisJam1wIHJldF93aXRoX3Jlc2NoZWR1bGVfZmFzdHN5czsNCisNCisJQUxJ
R04NCityZXNjaGVkdWxlX2Zhc3RzeXM6DQorCWNhbGwgU1lNQk9MX05BTUUo
c2NoZWR1bGUpDQorCWptcCByZXRfd2l0aF9yZXNjaGVkdWxlX2Zhc3RzeXM7
DQorDQorc2lnbmFsX3JldHVybl9mYXN0c3lzOg0KKwlzdGkJCQkJIyB3ZSBj
YW4gZ2V0IGhlcmUgZnJvbSBhbiBpbnRlcnJ1cHQgaGFuZGxlcg0KKwl0ZXN0
bCAkKFZNX01BU0spLEVGTEFHUyglZXNwKQ0KKwltb3ZsICVlc3AsJWVheA0K
KwlqbmUgdjg2X3NpZ25hbF9yZXR1cm5fZmFzdHN5cw0KKwl4b3JsICVlZHgs
JWVkeA0KKwljYWxsIFNZTUJPTF9OQU1FKGRvX3NpZ25hbCkNCisJam1wIHJl
c3RvcmVfYWxsX2Zhc3RzeXMNCisNCisJQUxJR04NCit2ODZfc2lnbmFsX3Jl
dHVybl9mYXN0c3lzOg0KKwljYWxsIFNZTUJPTF9OQU1FKHNhdmVfdjg2X3N0
YXRlKQ0KKwltb3ZsICVlYXgsJWVzcA0KKwl4b3JsICVlZHgsJWVkeA0KKwlj
YWxsIFNZTUJPTF9OQU1FKGRvX3NpZ25hbCkNCisJam1wIHJlc3RvcmVfYWxs
X2Zhc3RzeXMNCisNCit0cmFjZWZhc3RzeXM6DQorCW1vdmwgJC1FTk9TWVMs
RUFYKCVlc3ApDQorCWNhbGwgU1lNQk9MX05BTUUoc3lzY2FsbF90cmFjZSkN
CisJbW92bCBPUklHX0VBWCglZXNwKSwlZWF4DQorCWNtcGwgJChOUl9zeXNj
YWxscyksJWVheA0KKwlqYWUgdHJhY2VmYXN0c3lzX2V4aXQNCisJY2FsbCAq
U1lNQk9MX05BTUUoc3lzX2NhbGxfdGFibGUpKCwlZWF4LDQpDQorCW1vdmwg
JWVheCxFQVgoJWVzcCkJCSMgc2F2ZSB0aGUgcmV0dXJuIHZhbHVlDQordHJh
Y2VmYXN0c3lzX2V4aXQ6DQorCWNhbGwgU1lNQk9MX05BTUUoc3lzY2FsbF90
cmFjZSkNCisJam1wIHJldF9mcm9tX2Zhc3RzeXNfY2FsbA0KK2JhZGZhc3Rz
eXM6DQorCW1vdmwgJC1FTk9TWVMsRUFYKCVlc3ApDQorCWptcCByZXRfZnJv
bV9mYXN0c3lzX2NhbGwNCisNCisJQUxJR04NCisNCiBFTlRSWShsY2FsbDcp
DQogCXB1c2hmbAkJCSMgV2UgZ2V0IGEgZGlmZmVyZW50IHN0YWNrIGxheW91
dCB3aXRoIGNhbGwgZ2F0ZXMsDQogCXB1c2hsICVlYXgJCSMgd2hpY2ggaGFz
IHRvIGJlIGNsZWFuZWQgdXAgbGF0ZXIuLg0KQEAgLTE3MywxNSArMzAwLDE0
IEBADQogCWptcCByZXRfZnJvbV9zeXNfY2FsbA0KIA0KIA0KLQlBTElHTg0K
LQkuZ2xvYmwJcmV0X2Zyb21fZm9yaw0KLXJldF9mcm9tX2Zvcms6DQorRU5U
UlkocmV0X2Zyb21fZm9yaykNCiAJcHVzaGwgJWVieA0KIAljYWxsIFNZTUJP
TF9OQU1FKHNjaGVkdWxlX3RhaWwpDQogCWFkZGwgJDQsICVlc3ANCiAJR0VU
X0NVUlJFTlQoJWVieCkNCiAJam1wCXJldF9mcm9tX3N5c19jYWxsDQogDQor
DQogLyoNCiAgKiBSZXR1cm4gdG8gdXNlciBtb2RlIGlzIG5vdCBhcyBjb21w
bGV4IGFzIGFsbCB0aGlzIGxvb2tzLA0KICAqIGJ1dCB3ZSB3YW50IHRoZSBk
ZWZhdWx0IHBhdGggZm9yIGEgc3lzdGVtIGNhbGwgcmV0dXJuIHRvDQpAQCAt
MjY5LDcgKzM5NSw3IEBADQogDQogCUFMSUdODQogcmVzY2hlZHVsZToNCi0J
Y2FsbCBTWU1CT0xfTkFNRShzY2hlZHVsZSkgICAgIyB0ZXN0DQorCWNhbGwg
U1lNQk9MX05BTUUoc2NoZWR1bGUpDQogCWptcCByZXRfZnJvbV9zeXNfY2Fs
bA0KIA0KIEVOVFJZKGRpdmlkZV9lcnJvcikNCi0tLSBsaW51eC9hcmNoL2kz
ODYva2VybmVsL3NldHVwLmMub3JpZwlXZWQgRGVjICA4IDA3OjU1OjEzIDE5
OTkNCisrKyBsaW51eC9hcmNoL2kzODYva2VybmVsL3NldHVwLmMJV2VkIERl
YyAgOCAwNzo1OTo1MCAxOTk5DQpAQCAtMTQ4MCw2ICsxNDgwLDI0IEBADQog
CXJldHVybiBwIC0gYnVmZmVyOw0KIH0NCiANCisvKg0KKyAqIFNZU0VOVEVS
L1NZU0VYSVQgZmFzdCBzeXN0ZW0gY2FsbCBzdXBwb3J0IG9uIFBQcm8rIENQ
VXMuDQorICogSzYrIENQVXMgaGF2ZSB0aGlzIHRvbyAtIG9ubHkgdGhlIE1T
UnMgZGlmZmVyLg0KKyAqDQorICogVGhpcyBmdW5jdGlvbnMgc2V0cyB1cCB0
aGUgTVNScyB3aGljaCBzaG93IHRoZSBrZXJuZWwgZW50cnlwb2ludA0KKyAq
IGZvciBmYXN0IHN5c2NhbGxzLiBTZWUgZW50cnkuUydzIGZhc3Rfc3lzdGVt
X2NhbGwgZm9yIG1vcmUuDQorICovDQorc3RhdGljIGlubGluZSB2b2lkIGZh
c3RzeXNfaW5pdCAodm9pZCkNCit7DQorCWV4dGVybiBjaGFyIGZhc3Rfc3lz
dGVtX2NhbGw7DQorDQorCXByaW50aygiZmFzdHN5cyBpbml0IG9uIENQVSMl
ZC5cbiIsIHNtcF9wcm9jZXNzb3JfaWQoKSk7DQorDQorCXdybXNyKDB4MTc0
LCAweDEwLCAwKTsNCisJd3Jtc3IoMHgxNzUsIDAsIDApOw0KKwl3cm1zcigw
eDE3NiwgJmZhc3Rfc3lzdGVtX2NhbGwsIDApOw0KK30NCisNCiBpbnQgY3B1
c19pbml0aWFsaXplZCA9IDA7DQogdW5zaWduZWQgbG9uZyBjcHVfaW5pdGlh
bGl6ZWQgPSAwOw0KIA0KQEAgLTE0ODksNyArMTUwNyw3IEBADQogICogYW5k
IElEVC4gV2UgcmVsb2FkIHRoZW0gbmV2ZXJ0aGVsZXNzLCB0aGlzIGZ1bmN0
aW9uIGFjdHMgYXMgYQ0KICAqICdDUFUgc3RhdGUgYmFycmllcicsIG5vdGhp
bmcgc2hvdWxkIGdldCBhY3Jvc3MuDQogICovDQotdm9pZCBjcHVfaW5pdCAo
dm9pZCkNCit2b2lkIF9faW5pdCBjcHVfaW5pdCAodm9pZCkNCiB7DQogCWlu
dCBuciA9IHNtcF9wcm9jZXNzb3JfaWQoKTsNCiAJc3RydWN0IHRzc19zdHJ1
Y3QgKiB0ID0gJmluaXRfdHNzW25yXTsNCkBAIC0xNTM5LDQgKzE1NTcsNyBA
QA0KIAljdXJyZW50LT5mbGFncyAmPSB+UEZfVVNFREZQVTsNCiAJY3VycmVu
dC0+dXNlZF9tYXRoID0gMDsNCiAJc3R0cygpOw0KKw0KKwlpZiAoY3B1X2hh
c19mYXN0c3lzKQ0KKwkJZmFzdHN5c19pbml0KCk7DQogfQ0K
--79888902-1973713741-944672406=:2491
Content-Type: APPLICATION/OCTET-STREAM; NAME="fastcall.tar.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9912081800061.2491@chiara.csoma.elte.hu>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="fastcall.tar.gz"

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
--79888902-1973713741-944672406=:2491--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/