[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wrong request time in webcache simulation



It because the trace loader maps client IP address to client id in
simulator via a mod operation. Therefore, a client in
simulator, say C1, may have two extremely close request to the same
server. However, the simulator does not support concurrent request to the
same server from the same client, and the second request from the same
client will not be scheduled until the first request from the same client
finishes. This is how this warning comes up. 

> 	I guess the "p->nrt_" is the timestamp for next
> request in trace file for that client ID.  It only print
> a warning message when p->nrt_ is earlier than
> Scheduler::instance().clock().  It seems that the warning
> has nothing to do with whether last request finished or
> not. My question is: how can p->nrt_ be earlier than
> current simulation clock ?  This seems unreasonble to me.

p->nrt_ is the next request time. It's read only when the current request
finishes. Thus, it may be later than the current simulator clock.

> int id = atoi(argv[2]);
> ClientRequest *p = load_req(id);
> 
> 		To
> 
> int id = atoi(argv[2]+2);
> ClientRequest *p = load_req(id);
> 
> 	And in the corrsponding tcl code, call above
> method by the object name of the client instead of
> the "id" of the client (which is node id the client
> bound to). The offset "+2" is for skipping "_o" in
> the otcl object name.

I'll check in this change. Thanks a lot.

- Haobo