Re: Apache access problem

2005-07-31 Thread Michael Ben-Nes

quite easy: write the error in google and walla:


snip from a thread:


Whew. I found the reason for the problem. Apache is running as
group www and the group file had two groups www with different
numerical ids. Must have some historical reason that we use a
differing numerical id on a few machines. One of the updates
must have either readded the old offending id or changed the
way the id is grabbed on daemon startup, so most of the time the
wrong numerical id was grabbed, clashing with the numerical id
in the file system.


http://groups-beta.google.com/group/alt.apache.configuration/browse_thread/thread/71c91167f25ca10d/024e74daa2ceec37?lnk=stq=failed+because+search+permissions+are+missing+on+a+component+of+the+pathrnum=4hl=en#024e74daa2ceec37


cheers



Shlomo Solomon wrote:

I haven't used Apache much, but quite a while ago, I did set up a (trivial) 
web page to see how this worked. At the time, I had no real problems. Today, 
I tried to access that page and got a 403 error. 


Here's what I've tried so far.

1 - I looked for error messages and found the following 
in /var/log/httpsd/error_log: 

[Sun Jul 31 00:03:56 2005] [error] [client 10.200.1.1] (13)Permission denied: 
access to / failed because search permissions are missing on a component of 
the path
[Sun Jul 31 00:03:56 2005] [error] [client 10.200.1.1] (13)Permission denied: 
access to / failed because search permissions are missing on a component of 
the path
[Sun Jul 31 00:03:56 2005] [error] [client 10.200.1.1] (13)Permission denied: 
access to /favicon.ico failed because search permissions are missing on a 
component of the path
[Sun Jul 31 00:03:56 2005] [error] [client 10.200.1.1] (13)Permission denied: 
access to /favicon.ico failed because search permissions are missing on a 
component of the path


2 - I then tried apachectl (as root) and got:
[EMAIL PROTECTED] solomon]# apachectl extendedstatus
  Forbidden

  You don't have permission to access /server-status on this server.

###
###
  Apache Server Status for shlomo1.solomon

  Server  Version:  Apache-AdvancedExtranetServer/1.3.31
  (Mandrakelinux/4mdk) mod_auth_external/2.1.18 mod_perl/1.29
  Server Built: Jul 13 2004 18:34:47

3 - the following was in /var/log/httpsd/error_log: 
[Sun Jul 31 00:05:53 2005] [error] [client 127.0.0.1] (13)Permission denied: 
access to /server-status failed because search permissions are missing on a 
component of the path


4 - I GOOGLED and learned it's a probably a permission problem. 

According to http://www.onlamp.com/pub/a/apache/2004/04/22/apacheckbk.html:  


quote
What search permissions are missing on a component of the path means is that 
somewhere in the directory path leading up to the file in question, there's a 
search (x) bit missing from one of the directories. You see, Apache needs to 
be able to look at files, the same as any other application does. And so it 
needs the search bit (x) set so that it can cd into a directory to get a look 
around.


For directories containing the web content, you need the read and execute 
permissions to be set. For a directory that Apache will just need to pass 
through on the way to a content directory, execute (search) permission is 
sufficient.

/quote

But, as far as I can see, my permissions are set OK. 


The page is in the standard location as set up by the Apache installation:
[EMAIL PROTECTED] solomon]$ ls -la /var/www/html/index*
-rw-rw-r--  1 root root 1299 Jul 30 21:15 /var/www/html/index.shtml

favicon.ico is in the same location:
[EMAIL PROTECTED] solomon]$ ls -la /var/www/html/fav*
-rw-r--r--  1 root root 1406 Aug 26  2004 /var/www/html/favicon.ico


And here are the permissions of all the directories in the path:
[EMAIL PROTECTED] solomon]$ ls -lad /var/www/html
drwxr-xr-x  15 apache apache 720 Jul 31 00:07 /var/www/html/
[EMAIL PROTECTED] solomon]$ ls -lad /var/www
drwxr-xr-x  11 apache apache 272 Jan 23  2005 /var/www/
[EMAIL PROTECTED] solomon]$ ls -lad /var
drwxr-xr-x  27 root root 680 Jan 31 20:09 /var/


Any ideas what's wrong here?

TIA


 



--
--
Canaan Surfing Ltd.
Internet Service Providers
Ben-Nes Michael - Manager
Tel: 972-4-6991122
Cel: 972-52-8555757
Fax: 972-4-6990098
http://www.canaan.net.il
--


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Telux: Kernel Building by Ori Idan on 7/August

2005-07-31 Thread Shlomi Fish
On 7 August 2005, the Tel Aviv Linux Club will meet again to hear Ori Idan's 
presentation about building and maintaining the Linux kernel. The time of day 
is 18:30 and the place is Schreiber building, room 007 of Tel Aviv 
University.

More information can be found at the club's site:

http://www.cs.tau.ac.il/telux/

Hope to see you there!

Regards,

Shlomi Fish

P.S.: Thanks for all the people who came to Oron Peled's presentation about 
SELinux. The room was almost full, and it was a very successful presentation. 
I hope this trend will continue in the near future.

-
Shlomi Fish  [EMAIL PROTECTED]
Homepage:http://www.shlomifish.org/

Tcl is LISP on drugs. Using strings instead of S-expressions for closures
is Evil with one of those gigantic E's you can find at the beginning of 
paragraphs.

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Need Computer Monitors for APCHII

2005-07-31 Thread Aviram Jenik
Hi,

For the upcoming August Penguin Hacking Contest (APCHII) we need 6 computer 
monitors. If you have a computer monitor (17 is preferred) that you can 
bring with you to the contest (if it's not clear - the monitor will be 
returned to you afterwards...) please let me know.

All monitor contributors will get an APCHII T-shirt :-)

- Aviram

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Sendmail performance tuning

2005-07-31 Thread Larry Weisberg
Is there a mailing list (other than this list) to post questions about
performance tuning of sendmail?  Alternatively, is there anyone out
there who has significant experience with performance tuning of
Sendmail (preferrably on Debian) who might be interested in a few
hours of consulting work?

Larry

To unsubscribe, 
send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



restricting memory mapping

2005-07-31 Thread Boris Zingerman

Hi list

We have some driver that performs
zero-copy DMA to userspace allocated
buffers. The problem is that the device
cannot perform DMA to RAM pages
with physical addresses above 4G ( this
is heavily memory equipped computer)
My question is it somehow possible to
restrict memory mapping for shared
memory segments ( which are used
as DMA destination) to  be physically
under 4G boundary ?

thanks
Boris


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: restricting memory mapping

2005-07-31 Thread Muli Ben-Yehuda
On Sun, Jul 31, 2005 at 02:08:06PM +0300, Boris Zingerman wrote:

 We have some driver that performs
 zero-copy DMA to userspace allocated
 buffers. The problem is that the device
 cannot perform DMA to RAM pages
 with physical addresses above 4G ( this
 is heavily memory equipped computer)
 My question is it somehow possible to
 restrict memory mapping for shared
 memory segments ( which are used
 as DMA destination) to  be physically
 under 4G boundary ?

not from userspace; if, however, your userspace process does
mmap(MAP_SHARED...) on a a character device file the driver exports,
it can be done inside the driver.

Cheers,
Muli
-- 
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Gilad Ben-Yossef

Gilboa Davara wrote:

Muli,

I well aware of the controversy surrounding FS access from kernel
modules and I accept, that in general, kernel modules should be using
the FS for storage.
However, in essence, I'm using the *wrong* tool for the right job: I
shouldn't be using Linux on a i386/x86-64 in the first place; I should
be using a network OS with a network chip.
However, Linux/x86 uses (relatively) cheap hardware and has massive
driver support and a kernel modules is (again, relatively) easy to write
and modify. Oh... and Linux is easy to bend :)

After doing some contemplating I decided that I don't really need access
to an FS; or actually,  all I need a is huge cyclic buffer with fast
sequential R/W and force-able sync. If anything the VFS layer will only
slow me down.
I wonder if the raw character code is code enough to be yanked out and
used for this project?



Now you're re-inventing RelayFs :-)

Gilad

--
Gilad Ben-Yossef [EMAIL PROTECTED]
Codefidence. A name you can trust(tm)
Web: http://codefidence.com  | SIP: [EMAIL PROTECTED]
IL: +972.9.8650475 ext. 201  | Fax:+972.9.8850643
US: +1.360.2275194 ext. 201  | Cel:   +972.52.8260388

I am Jack's Overwritten Stack Pointer
-- Hackers Club, the movie

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: restricting memory mapping

2005-07-31 Thread Gilad Ben-Yossef

Boris Zingerman wrote:



We have some driver that performs
zero-copy DMA to userspace allocated
buffers. The problem is that the device
cannot perform DMA to RAM pages
with physical addresses above 4G ( this
is heavily memory equipped computer)
My question is it somehow possible to
restrict memory mapping for shared
memory segments ( which are used
as DMA destination) to  be physically
under 4G boundary ?


The short answer, use either bounce buffer (slow) or pci_set_dma_map.

The long answer:


http://www.linux.com/howtos/IO-Perf-HOWTO/overview.shtml

Gilad

--
Gilad Ben-Yossef [EMAIL PROTECTED]
Codefidence. A name you can trust(tm)
Web: http://codefidence.com  | SIP: [EMAIL PROTECTED]
IL: +972.9.8650475 ext. 201  | Fax:+972.9.8850643
US: +1.360.2275194 ext. 201  | Cel:   +972.52.8260388

I am Jack's Overwritten Stack Pointer
-- Hackers Club, the movie

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Gilboa Davara
Umm...

Let me try and further explain what I need.
I'm writing a certain software network filter that handles -certain-
Ethernet and ATM/POS traffic.
Due to obvious performance consideration (Especially when under ATM) the
filter runs in kernel space, start to finish.
After the traffic is filtered and reassembled, it's being transferred to
a certain 3'rd party.
If the connection to the dies for any reason (or if the 3'rd party lags
under load), I must encrypt the traffic and save it on disk.
Once the connection resumes, I begin transmitting the stored traffic, in
a FIFO manner. (Which translates to an annoying state while on one end,
I'm yanking traffic out of the buffer, while the filter continuously
encrypts and writes new traffic on the other hand)

Even worse, in a certain filter mode, all data is first committed to
disk and then passed to the 3'rd party in-order to ensure 99% delivery.
(Even if the machine/kernel/filter dies during processing, at worse,
only the current [read: have yet to be processed] Ethernet frames/ATM
cells will be lost)

As far as I can see, realyfs uses memory buffer for storage, which is
major no-no in my case:
At 50-200MB/sec I'll deplete the system RAM within minutes (even on
AMD64) and as far as I can see, there's no obvious way to commit the
buffers into static storage.
Current me if I'm wrong, but relayfs was designed for fast Kernel/User
transactions and not Kernel/Kernel transactions, right?

I'm looking for 50% match open solution that can be bent to suite my
rather weird requirements.  
As the saying goes: Writing you own FS really cuts down on your Doom3
time! :-)

Gilboa


On Sun, 2005-07-31 at 14:56 +0300, Gilad Ben-Yossef wrote:
 Gilboa Davara wrote:
  Muli,
  
  I well aware of the controversy surrounding FS access from kernel
  modules and I accept, that in general, kernel modules should be using
  the FS for storage.
  However, in essence, I'm using the *wrong* tool for the right job: I
  shouldn't be using Linux on a i386/x86-64 in the first place; I should
  be using a network OS with a network chip.
  However, Linux/x86 uses (relatively) cheap hardware and has massive
  driver support and a kernel modules is (again, relatively) easy to write
  and modify. Oh... and Linux is easy to bend :)
  
  After doing some contemplating I decided that I don't really need access
  to an FS; or actually,  all I need a is huge cyclic buffer with fast
  sequential R/W and force-able sync. If anything the VFS layer will only
  slow me down.
  I wonder if the raw character code is code enough to be yanked out and
  used for this project?
 
 
 Now you're re-inventing RelayFs :-)
 
 Gilad



=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Gilad Ben-Yossef

Gilboa Davara wrote:

Umm...

As far as I can see, realyfs uses memory buffer for storage, which is
major no-no in my case:
At 50-200MB/sec I'll deplete the system RAM within minutes (even on
AMD64) and as far as I can see, there's no obvious way to commit the
buffers into static storage.
Current me if I'm wrong, but relayfs was designed for fast Kernel/User
transactions and not Kernel/Kernel transactions, right?

I'm looking for 50% match open solution that can be bent to suite my
rather weird requirements.  
As the saying goes: Writing you own FS really cuts down on your Doom3

time! :-)



Gilboa,

I'm sorry if I seound harsh, but I don't think you udnerstand your own 
needs.


Let's try to analyze them together - you need to store large amount of 
data from the network for proccessing by a further entity. What that 
data is exactly doesn't matter, but we will note that you might need to 
do non trivial handling of the data (encryption).


There obviously is no question of delay involved - you're talking about 
writing to disk, using a FIFO to buffer information etc so obviously 
there is no serious real time contraints on the data.


What you really care about therefore is - *througput*, NOT delay. For 
this, crossing the kernel/userspace and related context switch is NOT a 
problem!


The solution boils down to this:

1. You need some way to store information temporary in the kernel 
(because it's getting first to the kernel).

2. You then need to handle it (assembly/encryption) and write it to disk.
3. After the data is on disk, you have a different proccess that sends 
it to some thrid party, but we really don't care about that.


So long as you didn't perform 2, you want the information to wait in a 
temporary buffer (I first wrote bugger here, which is rather funny ;-) 
until you're done with it so store the data in a temporary in kernel 
buffer (or bugger, if you prefer ;-), have a user space proccess read it 
from there, proccess it, encrypt it, write it to file.
 Have yet another proccess send it to the thrid party (possibly using 
the Linux sendfile syscall for efficincy).


Now you can write that Temporary buffer layer in kernel that can easily 
be read by user space: your self but you'll be just wasting DOOM3 
cyclesw. This is exactly RelayFS. The rest are simple user space 
programs (and if you want to see an example on how to use it see Karim's 
most excellent LTT tool that can use RelayFS:  http://www.opersys.com/LTT).


Hope this helps,
Gilad
--
Gilad Ben-Yossef [EMAIL PROTECTED]
Codefidence. A name you can trust(tm)
Web: http://codefidence.com  | SIP: [EMAIL PROTECTED]
IL: +972.9.8650475 ext. 201  | Fax:+972.9.8850643
US: +1.360.2275194 ext. 201  | Cel:   +972.52.8260388

I am Jack's Overwritten Stack Pointer
-- Hackers Club, the movie

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Shachar Shemesh

Gilad Ben-Yossef wrote:

So long as you didn't perform 2, you want the information to wait in a 
temporary buffer (I first wrote bugger here, which is rather funny ;-) 


A Freudian slip is when you mean one thing but say your mother.

Now you can write that Temporary buffer layer in kernel that can 
easily be read by user space: your self but you'll be just wasting 
DOOM3 cyclesw. This is exactly RelayFS. The rest are simple user space 
programs (and if you want to see an example on how to use it see 
Karim's most excellent LTT tool that can use RelayFS:  
http://www.opersys.com/LTT).


The RelayFS page talks about why they are not the same as netlink, but 
they don't actually say what the difference is, or why they think it is 
better. I'd love to hear why you recommend one but not the other - what 
are the differences?



Hope this helps,
Gilad


 Shachar

--
Shachar Shemesh
Lingnu Open Source Consulting ltd.
http://www.lingnu.com/


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Gilboa Davara
Gilad,

Umm... Interesting. You might be right... but I'm still not convinced.
(Though my project manager will love the general idea. To say the least,
she doesn't really fancy the idea of writing our own FS  :))

 I'm sorry if I seound harsh, but I don't think you udnerstand your own 
 needs.

It has been known to happen

 
 Let's try to analyze them together - you need to store large amount of 
 data from the network for proccessing by a further entity. What that 
 data is exactly doesn't matter, but we will note that you might need to 
 do non trivial handling of the data (encryption).

I should add the encryption optional, depending on load and source. (And
more important, how fanatical is the client)
(There's no way in hell, I'll be able to process and encrypt two OC48
links in real time...)

 
 There obviously is no question of delay involved - you're talking about 
 writing to disk, using a FIFO to buffer information etc so obviously 
 there is no serious real time contraints on the data.

As long as the data sequence is maintained, yes.

 
 What you really care about therefore is - *througput*, NOT delay. For 
 this, crossing the kernel/userspace and related context switch is NOT a 
 problem!
 
 The solution boils down to this:
 
 1. You need some way to store information temporary in the kernel 
 (because it's getting first to the kernel).
 2. You then need to handle it (assembly/encryption) and write it to disk.
 3. After the data is on disk, you have a different proccess that sends 
 it to some thrid party, but we really don't care about that.

No quite:
1. Get data from driver. (Or kernel network stack)
2. (Pre-assemble data), filter data, assemble data.
3. Try sending data to 3'rd party.
4. Optional: encrypt data using a symmetrical encryptions. (Due to
performance constrains) 
5. Commit data to disk.
6. Read data from disk.
7. Decrypt data.
8. Send data to 3'rd party.

 
 So long as you didn't perform 2, you want the information to wait in a 
 temporary buffer (I first wrote bugger here, which is rather funny ;-) 
 until you're done with it so store the data in a temporary in kernel 
 buffer (or bugger, if you prefer ;-), have a user space proccess read it 
 from there, proccess it, encrypt it, write it to file.
   Have yet another proccess send it to the thrid party (possibly using 
 the Linux sendfile syscall for efficincy).
 Now you can write that Temporary buffer layer in kernel that can easily 
 be read by user space: your self but you'll be just wasting DOOM3 
 cyclesw. This is exactly RelayFS. The rest are simple user space 
 programs (and if you want to see an example on how to use it see Karim's 
 most excellent LTT tool that can use RelayFS:  http://www.opersys.com/LTT).
 
 Hope this helps,
 Gilad

Interesting... that might work.
Let me first point out that once the cells/frames have been processed, I
don't care much for timing. (Which bodes well on your solution).
However, I'm very tight on CPU and memory bandwidth. (Even a
dual Opteron machine with two memory banks tends to suffocate at a
certain point.)
No matter what I do I just can't afford to add memcpy's to my system. 

Here's how I see it:

Kernel 1:
Device - SKB - Reassembly - Disk.
(I can even save the third memcpy [Reassembly - Disk] I go rewrite the
world under me)

User:
Device - SKB - Reassembly ( - ?) Relayfs  - User: write(2) -
Kernel: sys_write (copy_from_user) - Disk.

Oh... Thanks for the help. I appreciate it.
Gilboa


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Muli Ben-Yehuda
On Sun, Jul 31, 2005 at 04:53:21PM +0300, Shachar Shemesh wrote:

 The RelayFS page talks about why they are not the same as netlink, but 
 they don't actually say what the difference is, or why they think it is 
 better. I'd love to hear why you recommend one but not the other - what 
 are the differences?

To sum it up very quickly: 

netlink - control or small ammounts of data
relayfs - bulk quantities of data

Cheers,
Muli
-- 
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Shachar Shemesh

Muli Ben-Yehuda wrote:


On Sun, Jul 31, 2005 at 04:53:21PM +0300, Shachar Shemesh wrote:

 

The RelayFS page talks about why they are not the same as netlink, but 
they don't actually say what the difference is, or why they think it is 
better. I'd love to hear why you recommend one but not the other - what 
are the differences?
   



To sum it up very quickly: 


netlink - control or small ammounts of data
relayfs - bulk quantities of data

Cheers,
Muli
 


and a device+ioctl?
/sys?
/proc?

 Shachar

--
Shachar Shemesh
Lingnu Open Source Consulting ltd.
http://www.lingnu.com/


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Gilad Ben-Yossef



Gilboa Davara wrote:



Let's try to analyze them together - you need to store large amount of 
data from the network for proccessing by a further entity. What that 
data is exactly doesn't matter, but we will note that you might need to 
do non trivial handling of the data (encryption).



I should add the encryption optional, depending on load and source. (And
more important, how fanatical is the client)
(There's no way in hell, I'll be able to process and encrypt two OC48
links in real time...)


I believe you can, but this WILL require much more explanation...





So long as you didn't perform 2, you want the information to wait in a 
temporary buffer (I first wrote bugger here, which is rather funny ;-) 
until you're done with it so store the data in a temporary in kernel 
buffer (or bugger, if you prefer ;-), have a user space proccess read it 
from there, proccess it, encrypt it, write it to file.
 Have yet another proccess send it to the thrid party (possibly using 
the Linux sendfile syscall for efficincy).
Now you can write that Temporary buffer layer in kernel that can easily 
be read by user space: your self but you'll be just wasting DOOM3 
cyclesw. This is exactly RelayFS. The rest are simple user space 
programs (and if you want to see an example on how to use it see Karim's 
most excellent LTT tool that can use RelayFS:  http://www.opersys.com/LTT).







Interesting... that might work.
Let me first point out that once the cells/frames have been processed, I
don't care much for timing. (Which bodes well on your solution).
However, I'm very tight on CPU and memory bandwidth. (Even a
dual Opteron machine with two memory banks tends to suffocate at a
certain point.)
No matter what I do I just can't afford to add memcpy's to my system. 


Understandable attitude, but it may be wrong. Take a look at this paper 
from last year OLS for example:


http://www.linuxsymposium.org/proceedings/reprints/Reprint-Ronciak-OLS2004.pdf

These guys from Intel thought having a zero copy receive path for 
network packets where the card will DMA stright into the user space 
program buffer will be a big win due to saving a memcpy.


They implemented and tested. Results? perfomace was *worse* from losing 
the extra copy, not better. It turned out the extra copy actually 
pre-loaded the cache and gained more then it costs.


Does this fit your scenario? I have no idea. But there is a lesson here: 
don't assume anything. Build a quick pilot and measure. You may very 
well find out that your bottle necks are completly different areas (for 
example - are your network drivers interrupt driven? you might very well 
find that your system gets into live lock on interrupts before any 
issues stemming from memcpy of data).


As the man said, pre optimization ios the root of all evil.



Here's how I see it:

Kernel 1:
Device - SKB - Reassembly - Disk.
(I can even save the third memcpy [Reassembly - Disk] I go rewrite the
world under me)

User:
Device - SKB - Reassembly ( - ?) Relayfs  - User: write(2) -
Kernel: sys_write (copy_from_user) - Disk.



As I already said, you can use Linux sendfile() to avoid the last copy 
if you're not messing with the data after it reached the disk. Wont help 
the decryption case, unless you also happen to have a a hardware 
encryption engine, which is a good idea anyways.



Oh... Thanks for the help. I appreciate it.


Thanks for the interesting subject :-)

Gilad

--
Gilad Ben-Yossef [EMAIL PROTECTED]
Codefidence. A name you can trust(tm)
Web: http://codefidence.com  | SIP: [EMAIL PROTECTED]
IL: +972.9.8650475 ext. 201  | Fax:+972.9.8850643
US: +1.360.2275194 ext. 201  | Cel:   +972.52.8260388

I am Jack's Overwritten Stack Pointer
-- Hackers Club, the movie

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Muli Ben-Yehuda
On Sun, Jul 31, 2005 at 05:31:11PM +0300, Shachar Shemesh wrote:

 and a device+ioctl?

deprecated, except in very specific case (only one I can recall in
recent memory is the Cell's SPE interface, and that one is not yet
decided).

 /sys?

Setting and reading device configuration and attributes. Very little
data transfer.

 /proc?

unholy mess. Add nothing new here.

There are other options as well

- the kevent/uevent mechanism, which works over netlink IIRC

- adding your own file system, which is actually the preferred
solution in many cases. A private case of that is debugfs.

- adding a syscall - think of this as the structured equivalent of a
device specific ioctl, for something that is *not* device specific.

There are no hard and fast rules about which method to use - it's all
a matter of taste, and a favorite subject for endless flamewars. If in
doubt, ask... 

Cheers,
Muli
-- 
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: Apache access problem

2005-07-31 Thread Shlomo Solomon
On Sunday 31 July 2005 11:20, Michael Ben-Nes wrote:

 Whew. I found the reason for the problem. Apache is running as
 group www and the group file had two groups www with different
 numerical ids. Must have some historical reason that we use a
 differing numerical id on a few machines. One of the updates
 must have either readded the old offending id or changed the
 way the id is grabbed on daemon startup, so most of the time the
 wrong numerical id was grabbed, clashing with the numerical id
 in the file system.

That doesn't seem to be the problem:

1 - As far as I know, apache is running as group apache and there's no problem 
with the group definition (or with any other group definition).

[EMAIL PROTECTED] solomon]$ cat /etc/group|grep apache
apache:x:78:

2 - I'm talking about one machine here so the possibility for different groups 
on different machines is not relevant.

3 - Even if there had been a problem as described above, I don't see why it 
would cause the permission problem since, as I already wrote, all the 
directories in the path have the search bit (x) set for owner, group and 
other.

 [EMAIL PROTECTED] solomon]$ ls -lad /var/www/html
 drwxr-xr-x  15 apache apache 720 Jul 31 00:07 /var/www/html/
 [EMAIL PROTECTED] solomon]$ ls -lad /var/www
 drwxr-xr-x  11 apache apache 272 Jan 23  2005 /var/www/
 [EMAIL PROTECTED] solomon]$ ls -lad /var
 drwxr-xr-x  27 root root 680 Jan 31 20:09 /var/

-- 
Shlomo Solomon
http://the-solomons.net
Sent by KMail 1.7.1 (KDE 3.2.3) on LINUX Mandrake 10.1


=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: Sendmail performance tuning

2005-07-31 Thread Ira Abramov
Quoting Larry Weisberg, from the post of Sun, 31 Jul:
 Is there a mailing list (other than this list) to post questions about
 performance tuning of sendmail?  Alternatively, is there anyone out

I'd google for it, and try sendmail.org actually...


 there who has significant experience with performance tuning of
 Sendmail (preferrably on Debian) who might be interested in a few
 hours of consulting work?

I wouldn't touch it with a long pole, it's an annoying piece of
spaghetty. If performance is your main parameter, consider looking at
Qmail and other modern options.

-- 
Much ado about nothing
Ira Abramov
http://ira.abramov.org/email/

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



NAPI performance ; tg3 and broadcom driver

2005-07-31 Thread Rami Rosen
Hi, 
NAPI (New API) is a technique to improve network performance on Linux.
It is not so new  (relatively) - first howto is from 16/2/2002.

In a really very brief descriptiom  , it uses polling intsead of
interrupts in some scenarios.
This polling is done for receiving packets (the network card must  be
able to disbale interrupts).
Transmitting packets is done as usual, by asserting interrupts. 
Polling is usually discouraged in linux device drivers , but there are
cases (like when the interrupt rate is very high) in which this
technique can improve
performance.

My question is: 
1) does anybody have an experience with this technique ? 
what is the threshold (of k packets for a second) from which it
became efficinet
to use NAPI over usual non-NAPI solutions ? 
(I am talking about Xeon processor ~2.4 Ghz , but also data on
other prcoessors can help)

2) Specically regarding NAPI and Broadcom cards: 
 On many distrubutins, the Broadcom BCM5700  family of Network Drivers
 uses the tg3 driver. ( Tigon3 ethernet driver, in /linux/drivers/net/tg3.c)

 On broadcom website there is a driver for linux that they wrote for Linux.
http://www.broadcom.com/drivers/downloaddrivers.php
(the BCM57xx Drivers). 

Is there any advantage of using the Broadcom drivers to using the tg3 driver ? 
(and does the kernel version - 2.4 or 2.6 - has any importance in this respect?)

Regards,
Rami Rosen

To unsubscribe, 
send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Baruch Even
Gilboa Davara wrote:
 Here's how I see it:
 
 Kernel 1:
 Device - SKB - Reassembly - Disk.
 (I can even save the third memcpy [Reassembly - Disk] I go rewrite the
 world under me)
 
 User:
 Device - SKB - Reassembly ( - ?) Relayfs  - User: write(2) -
 Kernel: sys_write (copy_from_user) - Disk.

Note that in the case of relayfs there is no memcpy involved in the
kernel-user stage, since relayfs uses mmap to map its buffers to
user-mode. At least in later versions.

relayfs is also being integrated into the kernel and will be available
built-in as of 2.6.13. You can also find patches in their homepage.

I've used relayfs for my own needs and it's been very easy to work with
them, there is a relayfs-apps layer that makes creating a quick pilot
very easy.

One possible complication though, relayfs has a buffer per cpu, if your
receive path is being handled in two different cpus you'll need to
synchronize the data yourself since you'll get it in two different buffers.

Baruch

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Gilboa Davara
On Sun, 2005-07-31 at 17:35 +0300, Gilad Ben-Yossef wrote:
  
  
  I should add the encryption optional, depending on load and source. (And
  more important, how fanatical is the client)
  (There's no way in hell, I'll be able to process and encrypt two OC48
  links in real time...)
 
 I believe you can, but this WILL require much more explanation...

I hear hardware assisted (or based) assembly and encryption coming. 
As I wish to conserve my current work, I rather (strike that: must) stay
in software-only-lala-land.

  Interesting... that might work.
  Let me first point out that once the cells/frames have been processed, I
  don't care much for timing. (Which bodes well on your solution).
  However, I'm very tight on CPU and memory bandwidth. (Even a
  dual Opteron machine with two memory banks tends to suffocate at a
  certain point.)
  No matter what I do I just can't afford to add memcpy's to my system. 
 
 Understandable attitude, but it may be wrong. Take a look at this paper 
 from last year OLS for example:
 
 http://www.linuxsymposium.org/proceedings/reprints/Reprint-Ronciak-OLS2004.pdf
 
 These guys from Intel thought having a zero copy receive path for 
 network packets where the card will DMA stright into the user space 
 program buffer will be a big win due to saving a memcpy.
 They implemented and tested. Results? perfomace was *worse* from losing 
 the extra copy, not better. It turned out the extra copy actually 
 pre-loaded the cache and gained more then it costs.

*Very* interesting reading. Nice catch indeed. 
Never the less I wonder if cache soiling wouldn't be a problem under
extra (or extreme) loads. 
It fairly probable that you'll the have the following scenario:
A. IRQ
B. Software IRQ.
(B1. Possible another IRQ raise here?)
C. DMA to SKB.
D. SKB to user buffers (L2 preloaded)
E. Boom. Hardware IRQ raised. (And the cycle starts over.)
F. User mode processing. (L2 contents lost)

In this case, by the time the user-space actually gets a hold of the
data, the L1/2 contents have been flushed. Don't forget that as the data
set and throughput grows the effect of the CPU cache diminishes
considerably. (Hence 9MB L3 Titanics and the 8MB L3 Xeon MPs)

More-ever people tend to over-look the fact that DMA, even on a fast
PCI-X 1.0 / 2.0 bus (PCI in this case) is *pretty* extensive latency
wise and limited, bandwidth wise; It is conceivable that the changes
they've made to driver to allow for zero-copy DMA added sufficient
latency to cancel any positive effects they might have gotten by going
zero-copy in the first place. 
It would have been nice to see the same test running on a Dual Opteron
machine (Or Xeon) with 2 x 2 port GbE NICs. A quad machine with two PCI-
X bridges is even better.
 
On the other hand, the article was written by someone, that unlike me,
knows what he's talking about. So go figure.

At least by my experience, once you have multiple GbE or ATM cards, it's
all about *pure* memory bandwidth first. (And lots and lots [and lots]
of it) and raw CPU power second.

 
 Does this fit your scenario? I have no idea. But there is a lesson here: 
 don't assume anything. Build a quick pilot and measure. You may very 
 well find out that your bottle necks are completly different areas (for 
 example - are your network drivers interrupt driven? you might very well 
 find that your system gets into live lock on interrupts before any 
 issues stemming from memcpy of data).

Even with a good NAPI Ethernet driver (Like the Intel's e1000) IRQ time
is indeed a problem. Combined with the software IRQ part of the driver,
I lose at 30-50% CPU time before I even start doing any real work.
I'm actually thinking about ways to disable IRQ altogether, manually
polling the devices for RX frames periodically. (I don't care much for
the extra load when the system is idle.)

 As the man said, pre optimization ios the root of all evil.

Umm... I hear that from my team leader on a daily basis. 
On the other hand, I doubt that the other extreme (Use C# now, rewrite
if we're slower then a dead snail later) is any better...
I'm still no convinced that the reduced development time of doing it in
user-space, will come even close to rewriting the all package if things
don't perform up to par. 


 As I already said, you can use Linux sendfile() to avoid the last copy 
 if you're not messing with the data after it reached the disk. Wont help 
 the decryption case, unless you also happen to have a a hardware 
 encryption engine, which is a good idea anyways.

Baaah! They'll deduct the encryption hardware price off my paycheck ;) 
To be honest, I don't worry much about encryption. I doubt that it'll be
used in any real high-bandwidth case. It will be used in cases where
security matters most and bandwidth is *very* low to begin with.

 
  Oh... Thanks for the help. I appreciate it.
 
 Thanks for the interesting subject :-)

Hehe... I do my best to serve :-)



Re: File I/O within kernel threads?

2005-07-31 Thread guy keren

On Sun, 31 Jul 2005, Gilboa Davara wrote:

 On Sun, 2005-07-31 at 17:35 +0300, Gilad Ben-Yossef wrote:
  
   Interesting... that might work.
   Let me first point out that once the cells/frames have been processed, I
   don't care much for timing. (Which bodes well on your solution).
   However, I'm very tight on CPU and memory bandwidth. (Even a
   dual Opteron machine with two memory banks tends to suffocate at a
   certain point.)
   No matter what I do I just can't afford to add memcpy's to my system.

did you measure this, or are you guessing?

  Understandable attitude, but it may be wrong. Take a look at this paper
  from last year OLS for example:
 
  http://www.linuxsymposium.org/proceedings/reprints/Reprint-Ronciak-OLS2004.pdf
 
  These guys from Intel thought having a zero copy receive path for
  network packets where the card will DMA stright into the user space
  program buffer will be a big win due to saving a memcpy.
  They implemented and tested. Results? perfomace was *worse* from losing
  the extra copy, not better. It turned out the extra copy actually
  pre-loaded the cache and gained more then it costs.

 *Very* interesting reading. Nice catch indeed.
 Never the less I wonder if cache soiling wouldn't be a problem under
 extra (or extreme) loads.

you're learning the wrong lesson from this. it's not about how to make
networking code faster. it's about intuition sometimes leads us the
wrong way.

now, get your hands off your mail reader, and spend a few days on doing
actual measurements and tests. either you'll find that you're right, and
you'll have valid info for she who must be obeyed in order to justify
what you're doing, or you'll find that your intuition has betrayed you,
and you can actually have the performance you wanted without doing extra
twists.

and gilad was right - when you measure performance, you should check the
worst-case scenario (that is, you lost contact with the 3rd-party thingy
and then regained it, and you now need to save new data directly to disk
at the same time as passing old data from disk to the 3rd party).

-- 
guy

For world domination - press 1,
 or dial 0, and please hold, for the creator. -- nob o. dy

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



low-level formatting?

2005-07-31 Thread Amos Shapira
Hello,

Running badblocks -n on my hard drive I found a couple hundred
of bad blocks, apparently pretty well concentrated in two areas.

I intend to buy a new drive but still trying to make use of this 80Gb
Maxtor drive I googled for low level format (the type that asks the
drive itself to map bad blocks without the OS intervention) and found
only text like in the old days it was possible, today only the factory
can do this.

Is this true?  Is my only option now is to mkfs which reads the output
of badblocks(8)?

Thanks,

--Amos

To unsubscribe, 
send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: File I/O within kernel threads?

2005-07-31 Thread Amos Shapira
On 8/1/05, Gilboa Davara [EMAIL PROTECTED] wrote:
 To be honest, I don't worry much about encryption. I doubt that it'll be
 used in any real high-bandwidth case. It will be used in cases where
 security matters most and bandwidth is *very* low to begin with.

Use an encrypted filesystem?

And as for the don't over optimize before you have a reason -
it doesn't mean design for a snail speed, it's another derivative
from the general advise of optimize the use of your own time - 
you might be wasting your time on something which won't gain
you much at the end of the project. Take this advise seriously,
too many development projects ignore it and fail.

Cheers,

--Amos

To unsubscribe, 
send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: NAPI performance ; tg3 and broadcom driver

2005-07-31 Thread Amos Shapira
On 8/1/05, Rami Rosen [EMAIL PROTECTED] wrote:
 Polling is usually discouraged in linux device drivers , but there are
 cases (like when the interrupt rate is very high) in which this
 technique can improve
 performance.

I'm just intrigued by this - how feasable would it be to write a driver
(and have support in the device hardware) that uses interrupts but
switches to NAPI when the input rate peaks, then switches back to
interrupts when the rate drops again?

Cheers,

--Amos

To unsubscribe, 
send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: Apache access problem

2005-07-31 Thread Amos Shapira
On 8/1/05, Shlomo Solomon [EMAIL PROTECTED] wrote:
 That doesn't seem to be the problem:

I though you settled on the decision that the problem is the
size of the file - could you justtry to create a file of just a little
less than 2Gb size and fetch it, then icrease the same file to
just a little over 2Gb and try to re-fetch it?

--Amos

To unsubscribe, 
send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]



Re: NAPI performance ; tg3 and broadcom driver

2005-07-31 Thread Oron Peled
On Monday 01 August 2005 06:30, Amos Shapira wrote:
 I'm just intrigued by this - how feasable would it be to write a driver
 (and have support in the device hardware) that uses interrupts but
 switches to NAPI when the input rate peaks, then switches back to
 interrupts when the rate drops again?

That's how NAPI is meant to work. The driver notifies the
stack via rx_schedule() that it should schedule another
poll. When the driver want to return to the normal
interrupt-per-packet mode, it should program the hardware
accordingly and call rx_complete() instead of rx_schedule().

-- 
Oron Peled Voice/Fax: +972-4-8228492
[EMAIL PROTECTED]  http://www.actcom.co.il/~oron
ICQ UIN: 16527398

Microsoft: We make virii work!

=
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word unsubscribe in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]