perfview icon indicating copy to clipboard operation
perfview copied to clipboard

TraceLog: Missing Event - SchedulingLogContextChange

Open smsunder opened this issue 4 years ago • 2 comments

Hello - My ETL parser utility requires parsing of specific DxgKrnl Event Name - "SchedulingLogContextStateChange". I can spot them in Dxgkrnl Provider GUID's Event List in GPUView, but somehow I don't get them while parsing ETL with Trace Event Parser. Is this a known issue? Appreciate your help!

Originally posted by @smsunder in https://github.com/microsoft/perfview/discussions/1358

smsunder avatar Feb 04 '21 01:02 smsunder

I'm not aware of an issue here. Can you share a simple repro and a trace that exhibits this issue?

brianrob avatar Feb 04 '21 04:02 brianrob

Hello - Following is a simple straightforward event parser that dumps the Event Data to console I do get the "SchedulingLog" Event on the console, but I don't see "SchedulingLogContextStateChange" event all Attached is the corresponding ETL file - SchedulingLog.etl Nevertheless if I open the ETL file with GPU View I can see both events - SchedulingLog and SchedulingLogContextStateChange Not sure what I'm missing here

`

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

using Microsoft.Diagnostics.Tracing;
using Microsoft.Diagnostics.Tracing.Parsers;
using Microsoft.Diagnostics.Tracing.Session;

namespace Dummy
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var source = new ETWTraceEventSource("SchedulingLog.etl"))
            {
                // Set up the callback
                source.Dynamic.AddCallbackForProviderEvent("Microsoft-Windows-DxgKrnl", "SchedulingLog", delegate (TraceEvent data)
                 {
                     Console.WriteLine("GOT SCHEDULING EVENT {0}", data);
                 });
                // Set up the callback
                source.Dynamic.AddCallbackForProviderEvent("Microsoft-Windows-DxgKrnl", "SchedulingLogContextStateChange", delegate (TraceEvent data)
                {
                    Console.WriteLine("GOT SCHEDULING CONTEXT STATE CHANGE LOG EVENT {0}", data);
                });
                source.Process(); // Invoke callbacks for events in the source
            }
        }
    }
}`

SchedulingLog.zip gpuview_snapshot

smsunder avatar Feb 04 '21 06:02 smsunder