Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a95ab8dd authored by Kean Mariotti's avatar Kean Mariotti Committed by Android (Google) Code Review
Browse files

Merge changes Id2cf232d,I54b18bd9 into main

* changes:
  Do not create new LayerTracing instance within LayerTraceGenerator
  Change log level of key tracing events
parents c01575d9 29aad4e3
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ void LayerDataSource::OnSetup(const LayerDataSource::SetupArgs& args) {
        mMode = static_cast<LayerTracing::Mode>(config.mode());
    } else {
        mMode = LayerTracing::Mode::MODE_GENERATED;
        ALOGV("Received config with unspecified 'mode'. Using 'GENERATED' as default");
        ALOGD("Received config with unspecified 'mode'. Using 'GENERATED' as default");
    }

    mFlags = 0;
@@ -62,21 +62,21 @@ void LayerDataSource::OnSetup(const LayerDataSource::SetupArgs& args) {
}

void LayerDataSource::OnStart(const LayerDataSource::StartArgs&) {
    ALOGV("Received OnStart event (mode = 0x%02x, flags = 0x%02x)", mMode, mFlags);
    ALOGD("Received OnStart event (mode = 0x%02x, flags = 0x%02x)", mMode, mFlags);
    if (auto* p = mLayerTracing.load()) {
        p->onStart(mMode, mFlags);
    }
}

void LayerDataSource::OnFlush(const LayerDataSource::FlushArgs&) {
    ALOGV("Received OnFlush event (mode = 0x%02x, flags = 0x%02x)", mMode, mFlags);
    ALOGD("Received OnFlush event (mode = 0x%02x, flags = 0x%02x)", mMode, mFlags);
    if (auto* p = mLayerTracing.load()) {
        p->onFlush(mMode, mFlags);
    }
}

void LayerDataSource::OnStop(const LayerDataSource::StopArgs&) {
    ALOGV("Received OnStop event (mode = 0x%02x, flags = 0x%02x)", mMode, mFlags);
    ALOGD("Received OnStop event (mode = 0x%02x, flags = 0x%02x)", mMode, mFlags);
    if (auto* p = mLayerTracing.load()) {
        p->onStop(mMode);
    }
+11 −12
Original line number Diff line number Diff line
@@ -36,6 +36,10 @@ LayerTracing::LayerTracing() {
    LayerDataSource::Initialize(*this);
}

LayerTracing::LayerTracing(std::ostream& outStream) : LayerTracing() {
    mOutStream = std::ref(outStream);
}

LayerTracing::~LayerTracing() {
    LayerDataSource::UnregisterLayerTracing();
}
@@ -49,10 +53,6 @@ void LayerTracing::setTransactionTracing(TransactionTracing& transactionTracing)
    mTransactionTracing = &transactionTracing;
}

void LayerTracing::setOutputStream(std::ostream& outStream) {
    mOutStream = std::ref(outStream);
}

void LayerTracing::onStart(Mode mode, uint32_t flags) {
    switch (mode) {
        case Mode::MODE_ACTIVE: {
@@ -63,18 +63,17 @@ void LayerTracing::onStart(Mode mode, uint32_t flags) {
            // taken. Let's manually take a snapshot, so that the trace's first entry will contain
            // the current layers state.
            addProtoSnapshotToOstream(mTakeLayersSnapshotProto(flags), Mode::MODE_ACTIVE);
            ALOGV("Started active tracing (traced initial snapshot)");
            ALOGD("Started active tracing (traced initial snapshot)");
            break;
        }
        case Mode::MODE_GENERATED: {
            ALOGV("Started generated tracing (waiting for OnFlush event to generated layers)");
            ALOGD("Started generated tracing (waiting for OnFlush event to generated layers)");
            break;
        }
        case Mode::MODE_DUMP: {
            ALOGV("Starting dump tracing (dumping single snapshot)");
            auto snapshot = mTakeLayersSnapshotProto(flags);
            addProtoSnapshotToOstream(std::move(snapshot), Mode::MODE_DUMP);
            ALOGV("Started dump tracing (dumped single snapshot)");
            ALOGD("Started dump tracing (dumped single snapshot)");
            break;
        }
        default: {
@@ -91,19 +90,19 @@ void LayerTracing::onFlush(Mode mode, uint32_t flags) {
    }

    if (!mTransactionTracing) {
        ALOGV("Skipping layers trace generation (transactions tracing disabled)");
        ALOGD("Skipping layers trace generation (transactions tracing disabled)");
        return;
    }

    auto transactionTrace = mTransactionTracing->writeToProto();
    LayerTraceGenerator{}.generate(transactionTrace, flags);
    ALOGV("Flushed generated tracing");
    LayerTraceGenerator{}.generate(transactionTrace, flags, *this);
    ALOGD("Flushed generated tracing");
}

void LayerTracing::onStop(Mode mode) {
    if (mode == Mode::MODE_ACTIVE) {
        mIsActiveTracingStarted.store(false);
        ALOGV("Stopped active tracing");
        ALOGD("Stopped active tracing");
    }
}

+1 −1
Original line number Diff line number Diff line
@@ -97,11 +97,11 @@ public:
    };

    LayerTracing();
    LayerTracing(std::ostream&);
    ~LayerTracing();
    void setTakeLayersSnapshotProtoFunction(
            const std::function<perfetto::protos::LayersSnapshotProto(uint32_t)>&);
    void setTransactionTracing(TransactionTracing&);
    void setOutputStream(std::ostream&);

    // Start event from perfetto data source
    void onStart(Mode mode, uint32_t flags);
+4 −4
Original line number Diff line number Diff line
@@ -49,26 +49,26 @@ void TransactionDataSource::OnSetup(const TransactionDataSource::SetupArgs& args
        mMode = static_cast<TransactionTracing::Mode>(config.mode());
    } else {
        mMode = TransactionTracing::Mode::MODE_CONTINUOUS;
        ALOGV("Received config with unspecified 'mode'. Using 'CONTINUOUS' as default");
        ALOGD("Received config with unspecified 'mode'. Using 'CONTINUOUS' as default");
    }
}

void TransactionDataSource::OnStart(const StartArgs&) {
    ALOGV("Received OnStart event");
    ALOGD("Received OnStart event");
    if (auto* p = mTransactionTracing.load()) {
        p->onStart(mMode);
    }
}

void TransactionDataSource::OnFlush(const FlushArgs&) {
    ALOGV("Received OnFlush event");
    ALOGD("Received OnFlush event");
    if (auto* p = mTransactionTracing.load()) {
        p->onFlush(mMode);
    }
}

void TransactionDataSource::OnStop(const StopArgs&) {
    ALOGV("Received OnStop event");
    ALOGD("Received OnStop event");
}

TransactionTracing::Mode TransactionDataSource::GetMode() const {
+2 −2
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ void TransactionTracing::onStart(TransactionTracing::Mode mode) {

    writeRingBufferToPerfetto(TransactionTracing::Mode::MODE_ACTIVE);

    ALOGV("Started active mode tracing (wrote initial transactions ring buffer to perfetto)");
    ALOGD("Started active mode tracing (wrote initial transactions ring buffer to perfetto)");
}

void TransactionTracing::onFlush(TransactionTracing::Mode mode) {
@@ -83,7 +83,7 @@ void TransactionTracing::onFlush(TransactionTracing::Mode mode) {

    writeRingBufferToPerfetto(TransactionTracing::Mode::MODE_CONTINUOUS);

    ALOGV("Flushed continuous mode tracing (wrote transactions ring buffer to perfetto");
    ALOGD("Flushed continuous mode tracing (wrote transactions ring buffer to perfetto");
}

void TransactionTracing::writeRingBufferToPerfetto(TransactionTracing::Mode mode) {
Loading