summaryrefslogtreecommitdiffstats
path: root/src/usr/trace
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2014-06-11 17:05:32 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-08-12 18:41:17 -0500
commit9ba94076a3ae491c1d4bd8a2bf7b015f0af17b30 (patch)
tree393a31cbe50862710a5f84a7ad2b9cc88a7c17aa /src/usr/trace
parent0fab01cf0c87843871862448a4809e9cab7c6b2a (diff)
downloadtalos-hostboot-9ba94076a3ae491c1d4bd8a2bf7b015f0af17b30.tar.gz
talos-hostboot-9ba94076a3ae491c1d4bd8a2bf7b015f0af17b30.zip
Throttle mailbox operations to avoid out-of-memory condition
Change-Id: I18f13ec742efe196e6a2bc3714051e2489567158 RTC: 102852 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/11586 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/trace')
-rw-r--r--src/usr/trace/daemon/daemon.C11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/usr/trace/daemon/daemon.C b/src/usr/trace/daemon/daemon.C
index 259d79da3..a51048128 100644
--- a/src/usr/trace/daemon/daemon.C
+++ b/src/usr/trace/daemon/daemon.C
@@ -456,13 +456,14 @@ namespace TRACEDAEMON
msg_t* msg = msg_allocate();
msg->type = DaemonIf::TRACE_CONT_TRACE_BUFFER;
msg->data[1] = i_size;
- msg->extra_data = i_buffer;
+ msg->extra_data = MBOX::allocate(i_size);
+ memcpy(msg->extra_data,i_buffer,i_size);
+ free(i_buffer);
errlHndl_t l_errl = MBOX::send(MBOX::FSP_TRACE_MSGQ, msg);
if (l_errl)
{
errlCommit(l_errl, TRACE_COMP_ID);
- free(i_buffer);
msg_free(msg);
}
}
@@ -494,7 +495,7 @@ namespace TRACEDAEMON
if (l_errl)
{
errlCommit(l_errl, TRACE_COMP_ID);
- free(i_buffer);
+ MBOX::deallocate(i_buffer);
msg_free(msg);
}
}
@@ -730,7 +731,9 @@ namespace TRACEDAEMON
// curBuffer pointer is transfered to mailbox now.
}
- curBuffer = reinterpret_cast<char*>(malloc(PAGESIZE));
+ curBuffer = reinterpret_cast<char*>
+ (MBOX::allocate(PAGESIZE));
+
memset(curBuffer, '\0', PAGESIZE);
curBuffer[0] = TRACE_BUF_CONT;
curBufferSize = 1;
OpenPOWER on IntegriCloud