From 1ccce6558e2c6069f913e1fb7b22cf7a707e30c8 Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Mon, 20 Mar 2023 18:12:33 +0000 Subject: [PATCH] Change trace tag. Include more identifiers and reconfigure the trace tag for better tracing. Bug: 262301475 Test: Run jobs and examine generated tag Change-Id: Ia04c2c647fc289b1878bb7526cfb6cd06f325f2e --- .../android/server/job/JobServiceContext.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java index 4c339ac66160a..7388fff17735f 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java @@ -465,22 +465,36 @@ public final class JobServiceContext implements ServiceConnection { mExecutionStartTimeElapsed - job.enqueueTime, job.getJob().isUserInitiated(), job.shouldTreatAsUserInitiatedJob()); + final String sourcePackage = job.getSourcePackageName(); if (Trace.isTagEnabled(Trace.TRACE_TAG_SYSTEM_SERVER)) { + final String componentPackage = job.getServiceComponent().getPackageName(); + String traceTag = "*job*<" + job.getSourceUid() + ">" + sourcePackage; + if (!sourcePackage.equals(componentPackage)) { + traceTag += ":" + componentPackage; + } + traceTag += "/" + job.getServiceComponent().getShortClassName(); + if (!componentPackage.equals(job.serviceProcessName)) { + traceTag += "$" + job.serviceProcessName; + } + if (job.getNamespace() != null) { + traceTag += "@" + job.getNamespace(); + } + traceTag += "#" + job.getJobId(); + // Use the context's ID to distinguish traces since there'll only be one job // running per context. Trace.asyncTraceForTrackBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "JobScheduler", - job.getTag(), getId()); + traceTag, getId()); } try { mBatteryStats.noteJobStart(job.getBatteryName(), job.getSourceUid()); } catch (RemoteException e) { // Whatever. } - final String jobPackage = job.getSourcePackageName(); final int jobUserId = job.getSourceUserId(); UsageStatsManagerInternal usageStats = LocalServices.getService(UsageStatsManagerInternal.class); - usageStats.setLastJobRunTime(jobPackage, jobUserId, mExecutionStartTimeElapsed); + usageStats.setLastJobRunTime(sourcePackage, jobUserId, mExecutionStartTimeElapsed); mAvailable = false; mStoppedReason = null; mStoppedTime = 0;