Skip to content

Commit 46ca782

Browse files
authored
Adding more explicit error code
Differential Revision: D78233596 Pull Request resolved: #12427
1 parent 206dcf4 commit 46ca782

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

runtime/core/error.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ enum class Error : error_code_t {
6363
/// Operator(s) missing in the operator registry.
6464
OperatorMissing = 0x14,
6565

66+
/// Registration error: Exceeding the maximum number of kernels.
67+
RegistrationExceedingMaxKernels = 0x15,
68+
69+
/// Registration error: The kernel is already registered.
70+
RegistrationAlreadyRegistered = 0x16,
71+
6672
/*
6773
* Resource errors.
6874
*/
@@ -95,7 +101,6 @@ enum class Error : error_code_t {
95101
DelegateMemoryAllocationFailed = 0x31,
96102
/// Execute stage: The handle is invalid.
97103
DelegateInvalidHandle = 0x32,
98-
99104
};
100105

101106
// Stringify the Error enum.
@@ -137,6 +142,10 @@ constexpr const char* to_string(const Error error) {
137142
return "Error::DelegateMemoryAllocationFailed";
138143
case Error::DelegateInvalidHandle:
139144
return "Error::DelegateInvalidHandle";
145+
case Error::RegistrationExceedingMaxKernels:
146+
return "Error::RegistrationExceedingMaxKernels";
147+
case Error::RegistrationAlreadyRegistered:
148+
return "Error::RegistrationAlreadyRegistered";
140149
}
141150
}
142151

runtime/kernel/operator_registry.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Error register_kernels_internal(const Span<const Kernel> kernels) {
7474
ET_LOG(Error, "%s", kernels[i].name_);
7575
ET_LOG_KERNEL_KEY(kernels[i].kernel_key_);
7676
}
77-
return Error::Internal;
77+
return Error::RegistrationExceedingMaxKernels;
7878
}
7979
// for debugging purpose
8080
ET_UNUSED const char* lib_name =
@@ -88,7 +88,7 @@ Error register_kernels_internal(const Span<const Kernel> kernels) {
8888
kernel.kernel_key_ == k.kernel_key_) {
8989
ET_LOG(Error, "Re-registering %s, from %s", k.name_, lib_name);
9090
ET_LOG_KERNEL_KEY(k.kernel_key_);
91-
return Error::InvalidArgument;
91+
return Error::RegistrationAlreadyRegistered;
9292
}
9393
}
9494
registered_kernels[num_registered_kernels++] = kernel;
@@ -106,7 +106,8 @@ Error register_kernels_internal(const Span<const Kernel> kernels) {
106106
// Registers the kernels, but panics if an error occurs. Always returns Ok.
107107
Error register_kernels(const Span<const Kernel> kernels) {
108108
Error success = register_kernels_internal(kernels);
109-
if (success == Error::InvalidArgument || success == Error::Internal) {
109+
if (success == Error::RegistrationAlreadyRegistered ||
110+
success == Error::RegistrationExceedingMaxKernels) {
110111
ET_CHECK_MSG(
111112
false,
112113
"Kernel registration failed with error %" PRIu32

runtime/kernel/test/kernel_double_registration_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ TEST_F(KernelDoubleRegistrationTest, Basic) {
3434
"aten::add.out",
3535
"v1/7;0,1,2,3|7;0,1,2,3|7;0,1,2,3",
3636
[](KernelRuntimeContext&, EValue**) {})};
37-
Error err = Error::InvalidArgument;
37+
Error err = Error::RegistrationAlreadyRegistered;
3838

3939
ET_EXPECT_DEATH(
4040
{ (void)register_kernels({kernels}); },

0 commit comments

Comments
 (0)