A computer-implemented method, comprising: storing data associated with a processing system which includes machines and associated processes, wherein the data includes timestamp information, machine status information, and product-batch information; determining, based on the data, a topology of the processing system, wherein the topology indicates flows of outputs between the machines as part of the processes; determining machine-fault information in association with the topology which includes statistics relating to time to failure and time to recover; generating, based on the machine-fault information, one or more fault parameters which indicate frequency and severity of a respective fault; and constructing, based on the topology and the machine-fault information, a system model which includes the one or more fault parameters, wherein constructing the system model comprises replacing nodes in the topology with machine models to obtain a fault-augmented model, wherein a respective machine is indicated by a finite state machine with states including busy, available, and stopped; generating a fault causality graph based on the topology and the machine-fault information; pruning causality links that do not make physical sense from the fault causality graph based on the system model, wherein pruning the fault causality graph based on the system model further comprises reducing a size of the fault causality graph by removing one or more nodes from the fault causality graph; determining a causality relation between failures of the machines and system-level performance degradation; adding, based on the causality relation, a causality link to the pruned fault causality graph to obtain a combined causality graph; and in response to adding the causality link to the pruned fault causality graph, displaying the combined causality graph, which allows a user to perform efficient fault diagnosis of the processing system. storing data associated with a processing system which includes machines and associated processes, wherein the data includes timestamp information, machine status information, and product-batch information; determining, based on the data, a topology of the processing system, wherein the topology indicates flows of outputs between the machines as part of the processes; determining machine-fault information in association with the topology which includes statistics relating to time to failure and time to recover; generating, based on the machine-fault information, one or more fault parameters which indicate frequency and severity of a respective fault; and constructing, based on the topology and the machine-fault information, a system model which includes the one or more fault parameters, wherein constructing the system model comprises replacing nodes in the topology with machine models to obtain a fault-augmented model, wherein a respective machine is indicated by a finite state machine with states including busy, available, and stopped; generating a fault causality graph based on the topology and the machine-fault information; pruning causality links that do not make physical sense from the fault causality graph based on the system model, wherein pruning the fault causality graph based on the system model further comprises reducing a size of the fault causality graph by removing one or more nodes from the fault causality graph; determining a causality relation between failures of the machines and system-level performance degradation; adding, based on the causality relation, a causality link to the pruned fault causality graph to obtain a combined causality graph; and in response to adding the causality link to the pruned fault causality graph, displaying the combined causality graph, which allows a user to perform efficient fault diagnosis of the processing system.