2001-10-29 17:12:42

by Denis Vlasenko

[permalink] [raw]
Subject: [BUG] Smbfs + preempt on 2.4.10

Hi,

I narrowed down Samba weirdness I observe on 2.4.10 to preempt patch.
Plain 2.4.10 works fine, 2.4.10+preempt (with latency measurement turned on)
is sometimes oopses, and sometimes reports 'file already exists' when I
attempt to copy a file from WinNT box to Linux. Sometimes it works ok
(50% or so...)

I am very willing to help in curing this coz low latency is great.
Feel free to contact me for any additional info.
--
vda


2001-10-29 18:19:12

by Urban Widmark

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

On Mon, 29 Oct 2001, vda wrote:

> Hi,
>
> I narrowed down Samba weirdness I observe on 2.4.10 to preempt patch.
> Plain 2.4.10 works fine, 2.4.10+preempt (with latency measurement turned on)
> is sometimes oopses, and sometimes reports 'file already exists' when I
> attempt to copy a file from WinNT box to Linux. Sometimes it works ok
> (50% or so...)

Could be that the preempt patch triggers some smbfs bug. Where do I get a
copy of it?

It is of course also possible that the preempt patch is buggy, in which
case I don't really care :)


> I am very willing to help in curing this coz low latency is great.

Could you describe the problems you experience with the current code, and
how the preempt patch helps?

/Urban

2001-10-29 18:55:59

by jjs

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

vda wrote:

> Hi,
>
> I narrowed down Samba weirdness I observe on 2.4.10 to preempt patch.
> Plain 2.4.10 works fine, 2.4.10+preempt (with latency measurement turned on)
> is sometimes oopses, and sometimes reports 'file already exists' when I
> attempt to copy a file from WinNT box to Linux. Sometimes it works ok
> (50% or so...)
>

There were highmem bugs in older preempt patch.
I had lockups on a prempt kernel compaq 6500 that
were cured in 2.4.13 or so...

Why not try a recent kernel + preempt?

cu

jjs

2001-10-29 20:54:43

by Robert Love

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

On Mon, 2001-10-29 at 13:56, J Sloan wrote:
> vda wrote:
> > I narrowed down Samba weirdness I observe on 2.4.10 to preempt patch.
> > Plain 2.4.10 works fine, 2.4.10+preempt (with latency measurement turned on)
> > is sometimes oopses, and sometimes reports 'file already exists' when I
> > attempt to copy a file from WinNT box to Linux. Sometimes it works ok
> > (50% or so...)
>
> Why not try a recent kernel + preempt?

Yes, would you mind retesting on a recent kernel and a recent patch?

Patches for kernels as old as 2.4.12 and as recent as the current
pre-releases are available at:

http://tech9.net/rml/linux/

I use samba myself a _lot_ here and I have not observed any problems,
even with our older patches... although I don't copy NT->Linux very
often.

Robert Love

2001-10-30 11:25:53

by Denis Vlasenko

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

On Monday 29 October 2001 20:53, you wrote:
> > > I narrowed down Samba weirdness I observe on 2.4.10 to preempt patch.
> > > Plain 2.4.10 works fine, 2.4.10+preempt (with latency measurement
> > > turned on) is sometimes oopses, and sometimes reports 'file already
> > > exists' when I attempt to copy a file from WinNT box to Linux.
> > > Sometimes it works ok (50% or so...)
> >
> > Why not try a recent kernel + preempt?
>
> Yes, would you mind retesting on a recent kernel and a recent patch?

Will try 2.4.13 and report.

BTW:
I'd like to reduce latency in one specific place which bites me most
(latencies up to 400000usec) coz I use VESA fb:
a BKL in tty_io.c:712 (in do_tty_write()).
It looks like we need to move BKL into write()
and/or replace it with spinlock.
I can't find where that write() func ptr is coming
(tracked it to tty->ldisc.write, but failed to find out
where that field is assigned to).
Somebody enlighten me...

BTW #2:
You're doing excellent work, Robert. Thank you.
--
vda

2001-10-30 11:52:12

by Alan

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

> I can't find where that write() func ptr is coming
> (tracked it to tty->ldisc.write, but failed to find out
> where that field is assigned to).
> Somebody enlighten me...

For the vesa fb scrolling case you probably want to put your own scheduling
points into the vesafb copying

2001-10-31 10:07:03

by Denis Vlasenko

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

On Monday 29 October 2001 18:39, you wrote:
> > I am very willing to help in curing this coz low latency is great.
>
> out of curiosity, why do you care? do you have a relatively
> old/low-powered machine? or are you doing RT audio effects?

I'd like Linux kernel to improve.

I do have tons of old stuff (even 386s with pitiful 16mb RAM!!!)
at my present job. Right now it seems impossible to run Linux on them
(you can't run any office suite in linux on such weak box,
however, win95 can (painfully slow but...))
and buying more RAM for them is problematic
(hard to find + how to convince my boss??)
--
vda

2001-10-31 10:13:43

by Denis Vlasenko

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

> > > I narrowed down Samba weirdness I observe on 2.4.10 to preempt patch.
> > > Plain 2.4.10 works fine, 2.4.10+preempt (with latency measurement
> > > turned on) is sometimes oopses, and sometimes reports 'file already
> > > exists' when I attempt to copy a file from WinNT box to Linux.
> > > Sometimes it works ok (50% or so...)
> >
> > Why not try a recent kernel + preempt?
>
> Yes, would you mind retesting on a recent kernel and a recent patch?

2.4.13+preempt exhibits the same bug (latency measurement patch not applied).

I am still very willing to help in stomping on this bug.
--
vda

2001-10-31 10:57:05

by Denis Vlasenko

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

On Tuesday 30 October 2001 11:57, you wrote:
> > I can't find where that write() func ptr is coming
> > (tracked it to tty->ldisc.write, but failed to find out
> > where that field is assigned to).
> > Somebody enlighten me...
>
> For the vesa fb scrolling case you probably want to put your own scheduling
> points into the vesafb copying

You are right but I couldn't find where vesafb copying routine lives in the
tree :-( Perhaps I should try harder digging...
--
vda

2001-11-05 15:03:05

by Denis Vlasenko

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

Hi Robert, Urban, everyone,

On Monday 29 October 2001 20:53, you wrote:
> > > I narrowed down Samba weirdness I observe on 2.4.10 to preempt patch.
> > > Plain 2.4.10 works fine, 2.4.10+preempt (with latency measurement
> > > turned on) is sometimes oopses, and sometimes reports 'file already
> > > exists' when I attempt to copy a file from WinNT box to Linux.
> > > Sometimes it works ok (50% or so...)
...
> I use samba myself a _lot_ here and I have not observed any problems,
> even with our older patches... although I don't copy NT->Linux very
> often.

2.4.13+preempt exhibits the same bug (even without latency measurement
patch). 2.4.13 plain is ok.

My subject line is not correct: it has nothing to do with smbfs since
bug shows up when win box creates files on linux share.

nmbd/smbd are started by inetd on my box, and I usually see creation bug
at first attempt to copy file, susequent copies are usually ok.

I have no idea of where I can start planting preempt_disable() and
preempt_enable() in the 2.4.13 to narrow bug location.
Any suggestions? Samba gurus may be more knowledgeable...
--
vda

PS. Urban, I dunno samba mailing list addr, feel free to crosspost this msg
there and/or tell me appropriate email addr.

/etc/inetd.conf (snippet)
-------------------------
# Samba, an SMB server.
netbios-ssn stream tcp nowait root /usr/sbin/smbd
... smbd -l/var/log/samba/smbd.log -s/etc/samba/smb.conf
netbios-ns dgram udp wait root /usr/sbin/nmbd
... nmbd -l/var/log/samba/nmbd.log -s/etc/samba/smb.conf

(lines with ... have wrapped in kmail)

/etc/samba/smb.conf
-------------------
# VDA
# This setup allows to connect as guest
# (invalid username -> you are guest)
# Attempt to connect to \\server\username
# will ask for password _for that username_
# even on braindamaged clients which don't
# let user specify username.
#
# Set passwords for users via smbpasswd!
#
# If passwd is ok, you are granted access to /home/username
# Note! To connect under different username, you may need
# to log off and on again on the client machine.
# Yes, M$ is terminally broken.

#======================= Global Settings =====================================
[global]

# Logging
#0..3 - ERR,WARN,NOTICE,INFO
log file = /var/log/samba.%m
max log size = 50
debug level = 1
syslog = 1
syslog only = No

# Browser elections
workgroup = LINUXWG
local master = yes
domain master = yes
preferred master = yes

# Authenticate users using local Samba
# - VDA: ok. Do we need to enable [netlogon]?
# Set passwords for users via smbpasswd!
encrypt passwords = yes
security = share
# This isn't possible with security=share
;;domain logons = yes
os level = 33
# If username is invalid, treat him as guest
map to guest = Bad user
# Allow users with null passwords to connect
null passwords = yes
# Allow logins from Win311/95/98 (weaker security)
lanman auth = yes

# Guess what is this?
client code page = 866
code page directory = /usr/lib/samba/lib/codepages

# ???
socket options = TCP_NODELAY

;;
;; TODO: try is this useful
;;[global]
;; default service = pub
;;
;;[pub]
;; path = /%S
;;

;;!!!
;; preexec = ...
;; postexec = ...

#============================ Default share parameters =======================
# Map guests to which UNIX user?
guest account = guest
# Share is visible by default?
browseable = yes
guest ok = yes
;;??? browse list = yes
read only = yes
follow symlinks = yes
create mode = 0644
force create mode = 0600
directory mode = 0755
force directory mode = 0111
deadtime = 10

#============================ Share Definitions ==============================
[-root]
path = /
read only = yes
guest ok = yes
guest only = no

[-pub]
path = /pub
read only = yes
guest ok = yes
guest only = yes

[-in]
path = /pub/in
read only = no
guest ok = yes
guest only = yes

# Special share - replaced by username
# Check that this path is actually accessible by users!!!
[homes]
path = /home/%S
only user = yes
user = %S
guest ok = no
read only = no
# This stops [homes] to be visible itself
# User shares inherit global setting and hence are visible
browseable = no

2001-11-05 15:19:22

by Urban Widmark

[permalink] [raw]
Subject: Re: [BUG] Smbfs + preempt on 2.4.10

On Mon, 5 Nov 2001, vda wrote:

> I have no idea of where I can start planting preempt_disable() and
> preempt_enable() in the 2.4.13 to narrow bug location.
> Any suggestions? Samba gurus may be more knowledgeable...
> --
> vda
>
> PS. Urban, I dunno samba mailing list addr, feel free to crosspost this msg
> there and/or tell me appropriate email addr.

[email protected], but if the kernel crashes smbd is probably not the guilty
party (it does run as root, or start as root, but I don't think it does
anything clever like write to /dev/kmem ... mmap possibly).

Nor do I think the samba developers are interested in crashing linux
kernels with experimental patches (more or less experimental anyway :)


> # Guess what is this?
> client code page = 866
> code page directory = /usr/lib/samba/lib/codepages

Normally that requires a 'character set' setting to get it right on the
linux side as well. But perhaps it guesses the right one ...

/Urban