This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Use data cache for stack accesses


On Wed, Jul 8, 2009 at 1:46 PM, Pedro Alves<pedro@codesourcery.com> wrote:
> On Wednesday 08 July 2009 21:08:00, Jacob Potter write:
>> --- a/gdb/thread.c
>> +++ b/gdb/thread.c
>> @@ -848,6 +848,9 @@ switch_to_thread (ptid_t ptid)
>> ? ?if (ptid_equal (ptid, inferior_ptid))
>> ? ? ?return;
>>
>> + ?if (ptid_get_pid (ptid) != ptid_get_pid (inferior_ptid))
>> + ? ?dcache_invalidate (target_dcache);
>> +
>
> I'm not sure this would be 100% multi-address space safe.
>
> Do we not have places where we switch inferior_ptid temporarily
> before calling reading memory, with save_inferior_ptid, without
> going through the high level switch_to_thread ?

Yeah.

> What if we do this within dcache itself, similarly
> to get_thread_regcache? ?That would be probably in [dcache_xfer_partial].

It seems that given that we can temporarily change inferiors without
giving subsystems notice of the change, and given vfork, then we need
to have intelligence in dcache to handle this (and then it's not clear
if we should keep one dcache per inferior).

How about having memory_xfer_partial notify dcache of every
write/read, and then dcache could keep just one copy of the cache and
flush it appropriately?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]