A method for avoiding livelock within a multiprocessor data processing system
when
there are multiple, concurrent clone operations to similar memory data locations
within a data processing system. A set of tokens are defined within the memory
cloner for use prior to conducting a clone operation on the fabric. The tokens
include a source token and a destination token. The tokens are issued on the fabric
by a memory cloner prior to initiating the data clone operation. The tokens discover
the availability of a source address and a destination address required to complete
the clone operation. Once the response to the destination address token indicates
that the destination address is not currently being utilized by another memory
cloner to conduct another data clone operation, the memory cloner may issue the
commands to initiate the memory clone operation.