[Beignet] [PATCH] Use syslog for device self-test errors
Giuseppe Bilotta
giuseppe.bilotta at gmail.com
Mon Oct 12 01:38:14 PDT 2015
On Mon, Oct 12, 2015 at 3:43 AM, Yang, Rong R <rong.r.yang at intel.com> wrote:
> It is good idea print warnings to syslog avoid application confuse.
> But for errors, I think also need print to stdout, give the clear hint to application.
>
> Any other consideration?
In my opinion a library should never produce (console) output unless
explicitly requested to do so, so I think using syslog in any case is
the correct approach. Maybe have some environment variable
(OCL_VERBOSE or something like that) to control output to console?
(In any case, even if the printf is preserved, it should at the very
least be an fprintf(stderr, ...) instead)
>> -----Original Message-----
>> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
>> Giuseppe Bilotta
>> Sent: Sunday, September 27, 2015 19:47
>> To: beignet at lists.freedesktop.org
>> Cc: Giuseppe Bilotta
>> Subject: [Beignet] [PATCH] Use syslog for device self-test errors
>>
>> ---
>> src/cl_device_id.c | 15 +++++++++++----
>> 1 file changed, 11 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/cl_device_id.c b/src/cl_device_id.c index 78d2cf4..47bc772
>> 100644
>> --- a/src/cl_device_id.c
>> +++ b/src/cl_device_id.c
>> @@ -36,6 +36,8 @@
>> #include <stdlib.h>
>> #include <sys/sysinfo.h>
>>
>> +#include <syslog.h>
>> +
>> #ifndef CL_VERSION_1_2
>> #define CL_DEVICE_BUILT_IN_KERNELS 0x103F #endif @@ -611,7 +613,7
>> @@ cl_self_test(cl_device_id device, cl_self_test_res atomic_in_l3_flag)
>> ret = SELF_TEST_PASS;
>> } else {
>> ret = SELF_TEST_SLM_FAIL;
>> - printf("Beignet: self-test failed: (3, 7, 5) + (5, 7, 3) returned
>> (%i, %i, %i)\n"
>> + syslog(LOG_ERR, "Beignet: self-test failed: (3, 7, 5) + (5, 7, 3)
>> returned (%i, %i, %i)\n"
>> "See README.md or
>> http://www.freedesktop.org/wiki/Software/Beignet/\n",
>> test_data[0], test_data[1], test_data[2]);
>>
>> @@ -646,6 +648,8 @@ cl_get_device_ids(cl_platform_id platform,
>> {
>> cl_device_id device;
>>
>> + openlog("beignet", LOG_CONS, LOG_USER);
>> +
>> /* Do we have a usable device? */
>> device = cl_get_gt_device();
>> if (device) {
>> @@ -653,7 +657,7 @@ cl_get_device_ids(cl_platform_id platform,
>> if (ret == SELF_TEST_ATOMIC_FAIL) {
>> device->atomic_test_result = ret;
>> ret = cl_self_test(device, ret);
>> - printf("Beignet: warning - disable atomic in L3 feature.\n");
>> + syslog(LOG_WARNING, "Beignet: Warning - disable atomic in L3
>> + feature.\n");
>> }
>>
>> if(ret == SELF_TEST_SLM_FAIL) {
>> @@ -664,13 +668,16 @@ cl_get_device_ids(cl_platform_id platform,
>> sscanf(env, "%i", &disable_self_test);
>> }
>> if (disable_self_test) {
>> - printf("Beignet: Warning - overriding self-test failure\n");
>> + syslog(LOG_WARNING, "Beignet: Warning - overriding self-test
>> + failure\n");
>> } else {
>> - printf("Beignet: disabling non-working device\n");
>> + syslog(LOG_ERR, "Beignet: disabling non-working device\n");
>> device = 0;
>> }
>> }
>> }
>> +
>> + closelog();
>> +
>> if (!device) {
>> if (num_devices)
>> *num_devices = 0;
>> --
>> 2.6.0.rc2.233.g6dd8a9a.dirty
>>
>> _______________________________________________
>> Beignet mailing list
>> Beignet at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/beignet
--
Giuseppe "Oblomov" Bilotta
More information about the Beignet
mailing list