<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Hi,<br>
<br>
I am trying to log information from within the kernel with the use of a unix socket (/dev/log).<br>
My code is a kprobe handler, so while executing I am atomic and uninterrupted.<br>
The crashes begin when I do stress tests against my module, so i.e. more than 50 logs per second.<br>
The crash messages I get every time are different (from NULL reference, unable to handle page request etc), so I suppose that something is overwritten and this leads to the crash.<br>
&nbsp;<br>
I don't want to post the code here because it ~100 LOC but these are my steps:<br>
<br>
Initialization:<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; call sock_create_kern, with PF_UNIX, SOCK_DGRAM, 0 and the address of my socket,<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; then I memset to 0 my sockaddr_un variable and then I set its sun_family to PF_UNIX and copy the &quot;/dev/log&quot; string to sun_path<br>
<br>
Logging:<br>
&nbsp;&nbsp;&nbsp; I have the message that I want to log in variable called buffer and its length in variable called message_length,<br>
&nbsp;&nbsp;&nbsp; I set the msg_name of the msghdr to the address of my sockaddr_un variable, than the msn_namelen to sizeof(sockadrr_un), the msg_iov to an iovec variable which contains the buffer and the message_length values, msg_iovlen to 1 and msg_control, msg_controllen
 to 0.<br>
&nbsp;&nbsp;&nbsp; Then I set the fs to KERNEL_DS, call sock_sendmsg with parameters my socket, the address of my msghdr and the message_length and then I restore the fs that there was before setting it to KERNEL_DS.<br>
<br>
Please note that my socket, sockadd_un and my buffer are static variables. Also I always use the socket which is initialized once in the Initialization state (function).<br>
<br>
Do you see any &quot;bad practice&quot; or something that could lead to crashes when stressing with a lot of messages the socket?<br>
<br>
<div>Thank you in advance!<br>
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText">Panos<br>
--<br>
http://www.cern.ch/psakkos</div>
</span></font></div>
</div>
</div>
</body>
</html>