Add traceFS mount service and adjust service order 71/132271/3 accepted/tizen/unified/20170602.155201 submit/tizen/20170602.072408
authorChangjoon Baek <joon.c.baek@samsung.com>
Thu, 1 Jun 2017 12:37:23 +0000 (21:37 +0900)
committerGihun Chang <gihun.chang@samsung.com>
Fri, 2 Jun 2017 07:01:15 +0000 (07:01 +0000)
4.x kernel splited traceFS and debugFS.
/sys/kernel/debug/tracing and /tmp should be mounted before
ttrace-marker.service started.

- Add sys-kernel-tracing.service to mount tracefs to /sys/kernel/debug/tracing
- Adjust ttrace-marker.service order to be after the sys-kernel-tracing.service

Change-Id: I48f08bb8d4a31fa24b8508307812241a6fcb73b6
Signed-off-by: Changjoon Baek <joon.c.baek@samsung.com>
packaging/sys-kernel-tracing.service [new file with mode: 0644]
packaging/ttrace-marker.service
packaging/ttrace.spec
src/atrace/atrace.cpp

diff --git a/packaging/sys-kernel-tracing.service b/packaging/sys-kernel-tracing.service
new file mode 100644 (file)
index 0000000..08b4335
--- /dev/null
@@ -0,0 +1,15 @@
+[Unit]
+Description=TraceFs mount
+DefaultDependencies=no
+After=sys-kernel-debug.mount
+Before=tmp.mount systemd-tmpfiles-setup.service
+
+[Service]
+SmackProcessLabel=System
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/bin/touch -f /sys/kernel/debug/tracing
+
+[Install]
+WantedBy=sysinit.target
+
index e3f2d47c53841dc64342c1c7b5792520139c2ff5..d5eafad987eda22cb74ce1358fff7952e8f8b8e5 100644 (file)
@@ -1,11 +1,11 @@
 [Unit]
 Description=T-trace marker
 DefaultDependencies=no
-After=sys-kernel-debug.mount
+After=tmp.mount sys-kernel-tracing.service
 
 [Service]
 Type=simple
 ExecStart=/usr/bin/atrace --init_exec
 
 [Install]
-WantedBy=sys-kernel-debug.mount
+WantedBy=sysinit.target
index e3b4b8dbedc5d964f85ad73e8affea1d3cef4281..08f271dc5aa4f7fd6a9951d7eb01f1d7eed6804a 100644 (file)
@@ -6,6 +6,7 @@ Group:      System/Libraries
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
 SOURCE100:     packaging/ttrace.conf
+SOURCE101:     packaging/sys-kernel-tracing.service
 SOURCE102:     packaging/ttrace-marker.service
 SOURCE103:     packaging/atrace-bootup.sh
 
@@ -60,13 +61,15 @@ make %{?jobs:-j%jobs}
 %install
 rm -rf %{buildroot}
 %make_install
+mkdir -p %{buildroot}%{_unitdir}
 mkdir -p %{buildroot}/usr/lib/tmpfiles.d
-install -d %{buildroot}%{_unitdir}/ttrace-marker.service.wants
 install -m 0644 %{SOURCE100} %{buildroot}/usr/lib/tmpfiles.d/ttrace.conf
+install -m 0644 %{SOURCE101} %{buildroot}%{_unitdir}
 install -m 0644 %{SOURCE102} %{buildroot}%{_unitdir}
 mkdir -p %{buildroot}%{_bindir}
 cp %{SOURCE103} %{buildroot}%{_bindir}
-%install_service sys-kernel-debug.mount.wants ttrace-marker.service
+%install_service sysinit.target.wants ttrace-marker.service
+%install_service sysinit.target.wants sys-kernel-tracing.service
 
 %post -p /sbin/ldconfig
 
@@ -77,10 +80,11 @@ cp %{SOURCE103} %{buildroot}%{_bindir}
 %defattr(-,root,root,-)
 %{_libdir}/libttrace.so.*
 %{_unitdir}/ttrace-marker.service
-%{_unitdir}/ttrace-marker.service.wants/
+%{_unitdir}/sys-kernel-tracing.service
 %attr(755,root,users) %{_bindir}/atrace
 %attr(755,root,users) %{_bindir}/atrace-1.1
-%{_unitdir}/sys-kernel-debug.mount.wants/ttrace-marker.service
+%{_unitdir}/sysinit.target.wants/ttrace-marker.service
+%{_unitdir}/sysinit.target.wants/sys-kernel-tracing.service
 %attr(755,root,root) %{_bindir}/atrace-bootup.sh
 /usr/lib/tmpfiles.d/ttrace.conf
 %license LICENSE
index 2639795049b01346755fe206db7de3e5c6fd14e4..b372c60213b3f54f90b98306c8a90afd1a401b05 100755 (executable)
@@ -150,13 +150,6 @@ static bool g_categoryEnables[NELEM(k_categories)] = {};
 static bool g_init_exec = false;
 static bool g_append_trace = false;
 static bool g_backup_trace = false;
-static struct group group_dev;
-#if TTRACE_TIZEN_VERSION_MAJOR < 3
-#define TTRACE_GROUP_NAME      "developer"
-#else
-#define TTRACE_GROUP_NAME      "users"
-#endif
-static struct group* group_ptr;
 
 /* Save excluded tags list */
 uint64_t excludedTags;
@@ -382,38 +375,7 @@ static bool setTagsProperty(uint64_t tags)
                        fprintf(stderr, "[Info] T-trace has been already initailized\n");
                        return false; //atrace has been already initailized.
                }
-               ret = getgrnam_r(TTRACE_GROUP_NAME, &group_dev, buf, bufSize, &group_ptr);
-
-               if (ret != 0 && ret != ERANGE)
-               {
-                       fprintf(stderr, "Fail to group[%s] info: %s(%d)\n", TTRACE_GROUP_NAME, strerror_r(errno, str_error, sizeof(str_error)), errno);
-                       return false;
-               }
-               
-               bool isInvalid = false;
-               while(ret == ERANGE)
-               {
-                       long int tmpSize = -1;
-
-                       if(!isInvalid)
-                               tmpSize = sysconf(_SC_GETGR_R_SIZE_MAX);
-
-                       if (tmpSize == -1) 
-                       {
-                               bufSize *= 2;
-                       }
-                       else bufSize = (size_t) tmpSize;
 
-                       char *dynbuf = (char *) malloc(bufSize);
-                       if(dynbuf == NULL)
-                       {
-                               fprintf(stderr, "Fail to allocate buffer for group[%s]: %s(%d)\n", TTRACE_GROUP_NAME, strerror_r(errno, str_error, sizeof(str_error)), errno);
-                               return false;
-                       }
-                       ret = getgrnam_r(TTRACE_GROUP_NAME, &group_dev, dynbuf, bufSize, &group_ptr);
-                       if(ret == ERANGE) isInvalid = true;
-                       free(dynbuf);
-               }
                fd = open("/tmp/tmp_tag", O_CREAT | O_RDWR | O_CLOEXEC, 0666);                          
                if(fd < 0){
                        fprintf(stderr, "Fail to open enabled_tag file: %s(%d)\n", strerror_r(errno, str_error, sizeof(str_error)), errno);