* [ECOS] remote syslog support in Redboot?
@ 2007-05-09 22:50 Jon Ringle
2007-05-10 14:13 ` Andrew Lunn
0 siblings, 1 reply; 5+ messages in thread
From: Jon Ringle @ 2007-05-09 22:50 UTC (permalink / raw)
To: ecos-discuss
Has anyone implemented the ability to have diag_printf() messages be sent to a remote syslog server in Redboot/ecos?
Jon
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ECOS] remote syslog support in Redboot?
2007-05-09 22:50 [ECOS] remote syslog support in Redboot? Jon Ringle
@ 2007-05-10 14:13 ` Andrew Lunn
2007-05-10 14:53 ` Jon Ringle
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Lunn @ 2007-05-10 14:13 UTC (permalink / raw)
To: Jon Ringle; +Cc: ecos-discuss
On Wed, May 09, 2007 at 03:12:29PM -0400, Jon Ringle wrote:
> Has anyone implemented the ability to have diag_printf() messages be
> sent to a remote syslog server in Redboot/ecos?
You will have to be careful when doing this. diag_printf() uses a very
simple polled IO, blocking serial device driver. The idea is that it
should always work, in any context. So you can do a diag_printf() in
an ISR or a DSR, not just a thread. It is also guaranteed the output
will be out the serial port before diag_printf() returns.
If you somehow modify diag_printf to send over a network stack it is
unlikely you can keep these properties. I would suggest you look at
adding a standard syslog interface, eg:
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
#define _BSD_SOURCE
#include <stdarg.h>
void vsyslog(int priority, const char *format, va_list ap);
and don't modify diag_printf().
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [ECOS] remote syslog support in Redboot?
2007-05-10 14:13 ` Andrew Lunn
@ 2007-05-10 14:53 ` Jon Ringle
2007-05-10 16:02 ` Gary Thomas
0 siblings, 1 reply; 5+ messages in thread
From: Jon Ringle @ 2007-05-10 14:53 UTC (permalink / raw)
To: Andrew Lunn; +Cc: ecos-discuss
On Thursday, May 10, 2007 7:56 AM, Andrew Lunn wrote:
> On Wed, May 09, 2007 at 03:12:29PM -0400, Jon Ringle wrote:
> > Has anyone implemented the ability to have diag_printf() messages be
> > sent to a remote syslog server in Redboot/ecos?
>
> You will have to be careful when doing this. diag_printf() uses a very
> simple polled IO, blocking serial device driver. The idea is that it
> should always work, in any context. So you can do a diag_printf() in
> an ISR or a DSR, not just a thread. It is also guaranteed the output
> will be out the serial port before diag_printf() returns.
How is this guaranteed if I connect to Redboot on tcp port 9000?
Jon
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [ECOS] remote syslog support in Redboot?
2007-05-10 14:53 ` Jon Ringle
@ 2007-05-10 16:02 ` Gary Thomas
2007-05-10 21:40 ` [ECOS] " Grant Edwards
0 siblings, 1 reply; 5+ messages in thread
From: Gary Thomas @ 2007-05-10 16:02 UTC (permalink / raw)
To: Jon Ringle; +Cc: Andrew Lunn, ecos-discuss
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Jon Ringle wrote:
> On Thursday, May 10, 2007 7:56 AM, Andrew Lunn wrote:
>> On Wed, May 09, 2007 at 03:12:29PM -0400, Jon Ringle wrote:
>>> Has anyone implemented the ability to have diag_printf() messages be
>>> sent to a remote syslog server in Redboot/ecos?
>> You will have to be careful when doing this. diag_printf() uses a very
>> simple polled IO, blocking serial device driver. The idea is that it
>> should always work, in any context. So you can do a diag_printf() in
>> an ISR or a DSR, not just a thread. It is also guaranteed the output
>> will be out the serial port before diag_printf() returns.
>
> How is this guaranteed if I connect to Redboot on tcp port 9000?
RedBoot uses a polled TCP connection, thus when you make a
call to diag_printf() that channels through RedBoot, it _will_
complete at the receiver before continuing. Interrupts are
off during this time, so it's safe even in ISR/DSR context.
Note: there can be issues if you try to send such messages from
within the network stack/drivers and these are routed
directly to the serial console, not over the network.
- --
- ------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
- ------------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iD8DBQFGQzHmmaKbSsQGV8ARAi/bAKCl+mxgKW8WWJMtlAcTJRtUEjAm9gCfcdVS
6rewRB3A4yidtlhn+XxGPiY=
=mn0u
-----END PGP SIGNATURE-----
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
* [ECOS] Re: remote syslog support in Redboot?
2007-05-10 16:02 ` Gary Thomas
@ 2007-05-10 21:40 ` Grant Edwards
0 siblings, 0 replies; 5+ messages in thread
From: Grant Edwards @ 2007-05-10 21:40 UTC (permalink / raw)
To: ecos-discuss
On 2007-05-10, Gary Thomas <gary@mlbassoc.com> wrote:
>>>> Has anyone implemented the ability to have diag_printf()
>>>> messages be sent to a remote syslog server in Redboot/ecos?
>>>
>>> You will have to be careful when doing this. diag_printf()
>>> uses a very simple polled IO, blocking serial device driver.
>>> The idea is that it should always work, in any context. So you
>>> can do a diag_printf() in an ISR or a DSR, not just a thread.
>>> It is also guaranteed the output will be out the serial port
>>> before diag_printf() returns.
>>
>> How is this guaranteed if I connect to Redboot on tcp port
>> 9000?
>
> RedBoot uses a polled TCP connection, thus when you make a
> call to diag_printf() that channels through RedBoot, it _will_
> complete at the receiver before continuing.
I've wondered about that.
The comment for __tcp_write_block() says that it blocks until
sent. What it appears to do by calling __tcp_drain() (and what
is implied by your statement above) is that it blocks until the
data is _ACKed_ not until the data is _sent_.
--
Grant Edwards grante Yow! My BIOLOGICAL ALARM
at CLOCK just went off ... It
visi.com has noiseless DOZE FUNCTION
and full kitchen!!
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-05-10 16:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-09 22:50 [ECOS] remote syslog support in Redboot? Jon Ringle
2007-05-10 14:13 ` Andrew Lunn
2007-05-10 14:53 ` Jon Ringle
2007-05-10 16:02 ` Gary Thomas
2007-05-10 21:40 ` [ECOS] " Grant Edwards
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 read-only IMAP folder(s) and NNTP newsgroup(s).