noteram:overflow may discard all the trace message
noteram_add may cause head = tail when remain == NOTE_ALIGN(notelen) log: nsh_main-14 [0] 2.132127493: tracing_mark_write: B|14|trace dump -c nsh_main-14 [0] 2.143322780: tracing_mark_write: E|14|trace dump -c nsh_main-14 [0] 2.513023895: tracing_mark_write: B|14|trace dump -c nsh_main-14 [0] 2.524060048: tracing_mark_write: E|14|trace dump -c nsh_main-14 [0] 2.897055341: tracing_mark_write: B|14|trace dump -c ap> trace dump -c nsh_main-14 [0] 3.270037241: tracing_mark_write: B|14|trace dump -c ap> trace dump -c Signed-off-by: dulibo1 <dulibo1@xiaomi.com>
This commit is contained in:
parent
9dc3e4ee41
commit
ca989b5101
@ -567,7 +567,7 @@ static void noteram_add(FAR struct note_driver_s *driver,
|
|||||||
DEBUGASSERT(note != NULL && notelen < drv->ni_bufsize);
|
DEBUGASSERT(note != NULL && notelen < drv->ni_bufsize);
|
||||||
remain = drv->ni_bufsize - noteram_length(drv);
|
remain = drv->ni_bufsize - noteram_length(drv);
|
||||||
|
|
||||||
if (remain < notelen)
|
if (remain <= NOTE_ALIGN(notelen))
|
||||||
{
|
{
|
||||||
if (drv->ni_overwrite == NOTERAM_MODE_OVERWRITE_DISABLE)
|
if (drv->ni_overwrite == NOTERAM_MODE_OVERWRITE_DISABLE)
|
||||||
{
|
{
|
||||||
@ -586,7 +586,7 @@ static void noteram_add(FAR struct note_driver_s *driver,
|
|||||||
noteram_remove(drv);
|
noteram_remove(drv);
|
||||||
remain = drv->ni_bufsize - noteram_length(drv);
|
remain = drv->ni_bufsize - noteram_length(drv);
|
||||||
}
|
}
|
||||||
while (remain < notelen);
|
while (remain <= NOTE_ALIGN(notelen));
|
||||||
}
|
}
|
||||||
|
|
||||||
head = drv->ni_head;
|
head = drv->ni_head;
|
||||||
|
Loading…
Reference in New Issue
Block a user